{"answers":{"affected":"2 open source packages ship an affected version, including ogham-mcp.","exploited":"There is no known exploitation of GHSA-8pqq-224h-x875 in the wild and no public exploit code.","fix":"Upgrade ogham-mcp to 0.11.1 or later.","what":"GHSA-8pqq-224h-x875 is a vulnerability in ogham-mcp, published on 5 May 2026."},"fix_prompt":"Check this codebase for GHSA-8pqq-224h-x875 and fix it if it is affected.\n\nWhat it is: GHSA-8pqq-224h-x875 is a vulnerability in ogham-mcp, published on 5 May 2026. \nExploitation: There is no known exploitation of GHSA-8pqq-224h-x875 in the wild and no public exploit code.\n\nAffected packages and fixed versions:\n- ogham-mcp (PyPI): affected from 0.6.3; fixed in 0.11.1\n- ogham-mcp (PyPI): affected from 0.6.3; fixed in 0.11.1\n\nTask:\n1. Search the dependency manifests and lockfiles (for example package.json, package-lock.json, requirements.txt, poetry.lock, uv.lock, pom.xml, build.gradle, go.mod, Cargo.lock, Gemfile.lock) and any Dockerfiles for the affected packages, including transitive dependencies.\n2. If an affected version is in use, upgrade it to the fixed version for its release line with the project's package manager, so the lockfile is regenerated. Prefer the smallest upgrade that fixes it.\n3. If there is no fix, or the upgrade would break the build, do not guess: explain the risk and the safest workaround instead.\n4. Run the tests and summarise what changed and why.\n5. If nothing in the project is affected, say so and change nothing.\n\nReference: https://insights.sbomify.com/GHSA-8pqq-224h-x875/ (Markdown: https://insights.sbomify.com/GHSA-8pqq-224h-x875/index.md)","id":"GHSA-8pqq-224h-x875","markdown":"https://insights.sbomify.com/GHSA-8pqq-224h-x875/index.md","name":"GHSA-8pqq-224h-x875","record":{"aliases":[],"analysis":null,"analysis_generated_by":null,"assigner":null,"cpe":[],"cvss":{"score":null,"severity":null,"source":null,"vector":null,"version":null},"cwes":[],"description":"## Summary\n\nBetween 2026-02 and 2026-04-24 a total of 22 public PyPI sdists of `ogham-mcp` contained development credentials embedded in source files. All credentials have since been rotated on the respective providers. No known exploitation. Upgrade to **v0.11.1** to get a clean release.\n\n## What was leaked\n\n| Credential | Location in sdist | Vulnerable range | Count |\n|---|---|---|---|\n| 3x Neon postgres URLs with passwords (US / EU / AP development databases) | top-level `Makefile` (`NEON_US`, `NEON_EU`, `NEON_AP` vars) | `\u003e=0.6.5, \u003c0.11.0` | 21 sdists |\n| 1x Voyage AI API key (`pa-...`) | `tests/test_hooks.py::test_mask_secrets_key_value` -- test fixture that fed a real key into the redaction-function tester | `\u003e=0.6.3, \u003c0.11.1` | 22 sdists |\n\n## Impact\n\n- **Primary risk**: any consumer of the affected sdists could have extracted the credentials and used them. The Neon URLs pointed at development databases; the Voyage key was a rate-limited API key.\n- **Observed exploitation**: none detected. Audit logs on both providers were reviewed post-rotation.\n- **Remediation on our side**:\n  - Neon passwords for all three regions rotated.\n  - Voyage API key rotated.\n  - All affected versions yanked from PyPI (v0.3.0 through v0.10.4 yanked on 2026-04-24; v0.11.0 pending yank after this advisory).\n  - v0.11.0 removed the Neon URLs and introduced `make publish-check` which scans every sdist for credential patterns before upload.\n  - v0.11.1 scrubs the Voyage key from the test fixture and excludes `benchmarks/`, `docs/`, `research/`, `extras/`, and `**/*.env*` from all future sdists via explicit hatchling sdist include/exclude in `pyproject.toml`.\n\n## Action for users\n\n- If users installed any version from `v0.3.0` through `v0.11.0`, upgrade to **v0.11.1** immediately:\n  ```\n  pip install --upgrade \"ogham-mcp\u003e=0.11.1\"\n  ```\n- Users do not need to rotate anything on their end. The leaked credentials were owned by the project maintainer, not by users.\n\n## Credit\n\nDiscovered during an internal pre-release audit on 2026-04-24 while preparing v0.11.1.","ecosystems":["PyPI"],"exploits":{"exploitdb":null,"first_seen":null,"github_poc":null,"max_poc_stars":null,"metasploit":null,"nuclei":null,"refs":[],"tier":null},"has_fix":true,"headline":"ogham-mcp had credentials embedded in published PyPI sdists -- Neon postgres URLs and Voyage API key","id":"GHSA-8pqq-224h-x875","indexable":true,"kev":null,"kind":"advisory","links":{"ecosystem":"PyPI","product":null,"products":[],"type":null,"year":"2026"},"n_packages":2,"n_references":null,"packages":[{"ecosystem":"PyPI","fixed":["0.11.1"],"introduced":["0.6.3"],"last_affected":[],"package":"ogham-mcp","purl":null,"source":"GHSA-8pqq-224h-x875"},{"ecosystem":"PyPI","fixed":["0.11.1"],"introduced":["0.6.3"],"last_affected":[],"package":"ogham-mcp","purl":"pkg:pypi/ogham-mcp","source":"GHSA-8pqq-224h-x875"}],"products":null,"published":"2026-05-05","related":[],"sources":[{"class":"attribution","licence":"CC BY 4.0","name":"GitHub Advisory Database","prefix":"GHSA"}],"ssvc":{"automatable":null,"exploitation":null,"technical_impact":null},"state":null,"updated":null,"vendors":null},"summary":null,"url":"https://insights.sbomify.com/GHSA-8pqq-224h-x875/"}