Your RSA-2048 keys break in 2030. Find every one of them before attackers do.
🐍 PyPI

GHSA-8pqq-224h-x875

ogham-mcp had credentials embedded in published PyPI sdists -- Neon postgres URLs and Voyage API key

Published
May 5, 2026
Updated
May 5, 2026
Affected
1 pkg
Patched
1 / 1
Exploits
None indexed

Blast Radius

1 pkg affected
🐍ogham-mcp

Real-time download stats are indexed for npm and PyPI packages. This vulnerability affects PyPI packages — download data is not available via public APIs for these ecosystems.

Description

Summary

Between 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.

What was leaked

CredentialLocation in sdistVulnerable rangeCount
3x Neon postgres URLs with passwords (US / EU / AP development databases)top-level Makefile (NEON_US, NEON_EU, NEON_AP vars)>=0.6.5, <0.11.021 sdists
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>=0.6.3, <0.11.122 sdists

Impact

  • 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.
  • Observed exploitation: none detected. Audit logs on both providers were reviewed post-rotation.
  • Remediation on our side:
    • Neon passwords for all three regions rotated.
    • Voyage API key rotated.
    • 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).
    • v0.11.0 removed the Neon URLs and introduced make publish-check which scans every sdist for credential patterns before upload.
    • 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.

Action for users

  • If users installed any version from v0.3.0 through v0.11.0, upgrade to v0.11.1 immediately:
    pip install --upgrade "ogham-mcp>=0.11.1"
    
  • Users do not need to rotate anything on their end. The leaked credentials were owned by the project maintainer, not by users.

Credit

Discovered during an internal pre-release audit on 2026-04-24 while preparing v0.11.1.

Affected Packages

1 total 1 fixed
EcosystemPackageVulnerable rangeFix
🐍PyPIogham-mcp0.6.3&&< 0.11.10.11.1

Detection & mitigation playbook

Open-source dependency
  1. Detect

    Scan your dependency tree (package-lock.json, pnpm-lock.yaml, requirements.txt, go.sum, etc.) for ogham-mcp. O3's reachability analysis confirms whether the vulnerable code path is actually invoked in your application, so you act on real exposure instead of every transitive match.

  2. Fix

    Update ogham-mcp to 0.11.1 or later, then make sure no transitive (indirect) dependency still pins the vulnerable range — O3 confirms GHSA-8pqq-224h-x875 is resolved across your whole dependency graph.

  3. Workarounds

    If you can't upgrade right away: gate or disable the affected feature, validate untrusted input at the boundary, and avoid passing attacker-controlled data into the vulnerable path. O3's runtime protection blocks exploitation in production as an interim safeguard until the upgrade lands.

  4. How O3 protects you

    O3 pinpoints whether GHSA-8pqq-224h-x875 is reachable in your code and exactly where to fix it, then blocks exploitation in production at runtime until the patched version is deployed.

Tailored to GHSA-8pqq-224h-x875. Runtime protection reduces exposure until a permanent patch is applied and verified — it complements patching, it doesn't replace it.

Frequently Asked Questions

## Summary Between 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. ## What was leaked | Credential | Location in sdist | Vulnerable range | Count | |---|---|---|---| | 3x Neon postgres URLs with passwords (US / EU / AP development databases) | top-level `Makefile` (`NEON_US`, `NEON_EU`, `NEON_AP` vars) | `>=0.6.5, <0.11.0` | 21 sdists | | 1x Voyage AI API key (`pa-...`) |
O3 Security · Impact-Aware SCA

Is GHSA-8pqq-224h-x875 in your dependencies?

O3 detects GHSA-8pqq-224h-x875 across PyPI dependencies and uses function-level reachability to confirm whether the vulnerable code path is actually reachable — not just present. No false positives.