Skip to the content.

Security Research

Vulnerability reports I have made to open source projects, and the fixes that came out of them.

Reports go to the maintainers privately first, through GitHub private vulnerability reporting or the channel named in the project’s SECURITY.md. An advisory is listed here only after the maintainers have published it. Recent reports also came with a proposed patch in the advisory’s temporary private fork.

Contact: kasparovabi@gmail.com

Disclosures

Date Vendor / Product Severity Title Status
2026-10-27 GuyMannDude / mnemo-cortex CVSS 3.1 High A wildcard CORS default opened the unauthenticated loopback API to web pages Fixed in 4.27.0 (GHSA-682p-grrx-wrwg)
2026-10-27 devantler-tech / KSail CVSS 3.1 Medium The local web UI checked Host only on writes, so a rebinding page could read cluster Secrets Fixed in 7.203.23 (GHSA-g57x-rm7r-hf26)
2026-10-27 embedded-society / altium-designer-mcp CVSS 3.1 Medium Count fields from a library file sized allocations, and a failed allocation aborts the server Fixed in 1.2.1 (GHSA-p2qw-h8m7-5x69)
2026-10-27 SylphxAI / anymd (pdf-reader-mcp) Medium The documented –allow-dir restriction was not implemented in the Rust server Fixed in @sylphx/citra 5.0.2 (GHSA-qr3f-g5wf-225w)
2026-10-27 Kronova Intelligent Systems / asset-intel-orchestration-engine CVSS 3.1 High An RLS policy with USING (true) let the anon role read every profile No patched version listed (GHSA-8h52-3cfj-cmrw)
2026-10-26 clidey / WhoDB CVSS 3.1 Medium SELECT … INTO passed the read-only and write-approval gates Fixed in 0.134.0 (GHSA-pvf2-6h4x-r24j)
2026-04-29 BasedHardware / Omi CVSS 10.0 (Critical) Seventeen Vulnerabilities in Omi, Fourteen Days of Silence Mostly fixed as of 2026-08-10; OMI-15 open (update)

Published GitHub Security Advisories

Advisories published by the maintainers, with reporter credit accepted. Reports still in private triage are not listed here.

Published Repository Severity Summary Advisory CVE
2026-10-19 GuyMannDude/mnemo-cortex High Default CORS allow_origins wildcard on unauthenticated loopback server allows cross-origin data exfiltration and state mutation GHSA-682p-grrx-wrwg  
2026-10-17 devantler-tech/ksail Medium Local web UI accepts read requests from any Host, letting a DNS rebinding page read cluster Secrets GHSA-g57x-rm7r-hf26  
2026-10-09 embedded-society/altium-designer-mcp Medium Unbounded allocation from attacker-controlled count fields in the Altium library parsers aborts the MCP server (DoS) GHSA-p2qw-h8m7-5x69  
2026-09-30 clidey/whodb Medium Read-only mode and the write-approval gate are bypassed by SELECT … INTO GHSA-pvf2-6h4x-r24j  
2026-09-20 SylphxAI/anymd Medium Documented –allow-dir / MCP_PDF_ALLOWED_DIRS filesystem allowlist is not implemented in the pure-Rust server GHSA-qr3f-g5wf-225w  
2026-09-17 Kronova-Intelligent-Systems/asset-intel-orchestration-engine High RLS policy on public.profiles grants the anon role unrestricted read, exposing user email GHSA-8h52-3cfj-cmrw  

Last synced: 2026-10-27

Merged fixes in other projects

Pull requests merged by the maintainers of the projects below.

| Merged | Repository | Change | |—|—|—| | 2026-10-26 | NaomiProject/Naomi | Use shlex.quote instead of the removed pipes module in TTS plugins | | 2026-10-21 | botbahlul/PyAutoSRT | Add audioop-lts for Python 3.13 and newer | | 2026-10-14 | jpfielding/dicos.rs | Replace retired model id in rust-expert agent frontmatter | | 2026-10-13 | kwaroran/Risuai | Resolve prefillsupported from the model flag for native Claude entries | | 2026-10-12 | opensvc/opensvc | sanswitch/brocade: import telnetlib only in the telnet helper (Python 3.13) | | 2026-10-06 | sokonalysis/sokonalysis | Remove unused spwd import for Python 3.13 | | 2026-10-05 | shengqh/ngsperl | Remove unused asyncore imports so the lib scripts run on Python 3.12+ | | 2026-10-03 | GreengageDB/greengage | Replace removed pipes module with shlex and subprocess for Python 3.13 | | 2026-10-02 | YoushanLiu/ANCC | Drop unused xdrlib import so makePZfiles scripts run on Python 3.13 | | 2026-09-26 | edspencer/herdctl | docs: replace retired Claude 4 model ids in configuration examples | | 2026-09-26 | ruvnet/RuVector | Replace retired Claude model ids in rvagent defaults and demo scripts | | 2026-09-26 | akkana/scripts | hypermoon: drop the cgi import removed in Python 3.13 | | 2026-09-23 | apache/hamilton | Update retired Claude model id in the hamilton-llm skill | | 2026-09-18 | langchain-ai/memory-agent-js | Update retired default model id claude-3-5-sonnet-20240620 | | 2026-09-18 | pr-pm/prpm | Replace retired Claude model ids in commands, skills and converter docs | | 2026-09-15 | acodercat/cave-agent | docs: replace retired claude-3-sonnet-20240229 in the LiteLLM README example | | 2026-09-10 | kayba-ai/agentic-context-engine | Replace retired Claude model ids and stop sending a rejected temperature | | 2026-09-08 | alinaqi/maggy | Replace a retired Claude model id in four skill examples | | 2026-09-04 | neuron-core/neuron-ai | Replace retired claude-3-5-sonnet-20241022 in two skill files | | 2026-09-01 | anton-abyzov/specweave | Replace retired Claude model id in the translation hooks | | 2026-08-31 | kwaroran/Risuai | Update retired Claude model ids in onboarding and preset defaults | | 2026-08-24 | FlorianBruniaux/claude-code-ultimate-guide | Update retired model id in the issue-triage example workflow | | 2026-08-24 | dorukozerr/kisuke.vim | Replace retired Claude model ids in the Anthropic model list | | 2026-08-23 | meyusufdemirci/iMenu-MacOS | Let the menu bar settle at each edge of the synthesized drag | | 2026-08-20 | NeoLabHQ/context-engineering-kit | Update the retired model id in the create-command example | | 2026-08-20 | TanStack/ai | Update retired Claude model ids in code-mode-snippets and ai-solid | | 2026-08-19 | posit-dev/pointblank | Update retired Anthropic model ids in the skills docs | | 2026-08-16 | athola/claude-night-market | docs: update retired model id in the SDK integration example | | 2026-08-10 | enuno/unifi-mcp-server | chore: update retired Claude model ids in workflows and mcp-builder skill | | 2026-08-09 | vitali87/code-graph-rag | chore: update retired Claude model ids in server.json and review workflow | | 2026-08-04 | mengxi-ream/read-frog | docs: update retired Claude model ids in add-provider command | | 2026-08-04 | davila7/claude-code-templates | Update retired model ids in settings components and docs | | 2026-08-02 | muratcankoylan/Agent-Skills-for-Context-Engineering | Update retired Sonnet 4 model id in pipeline template | | 2026-08-02 | rmyndharis/antigravity-skills | Replace retired Claude model id in the two AI review skills |

Detection rules

Detection rules derived from these advisories are in kasparovabi/semgrep-rules. Each bug class has Semgrep rules, positive and negative test cases, and a short guide on how to protect your own code.

Provenance

For the Omi disclosure, a separate page documents the full timeline with checkable artifacts: who reported what, when, and what the vendor’s own commit history says about where the fix came from. Every claim there can be reproduced with a git log command.

Methodology

Each writeup in this repository is published after:

  1. A private report through the vendor’s preferred coordinated-disclosure channel (typically GitHub Security Advisories).
  2. A reasonable window for the vendor to acknowledge, triage, and patch.
  3. A public-disclosure date communicated to the vendor in advance.

Where the vendor refuses to act, the disclosure window is shortened in proportion to the vendor’s behavior, the public exposure of the affected code paths, and the regulatory clocks that may apply to affected users (HIPAA, GDPR, SOC 2 audit obligations).

No proof-of-concept exploit code is published in this repository. Technical detail is sufficient to reproduce findings against the source code; no payload, weaponized scanner, or live-target tooling is included.

Contact