TC-2026-0047 · PYPI · MCP
[email protected]
Slopsquatted PyPI package registered to match a hallucinated MCP package name frequently recommended by coding LLMs; steals PGPASSWORD and DATABASE_URL on import.
Signed ledger verdict
TC-2026-0047
Known bad (exit 2)
pypi:mcp-server-postgres-plus==0.2.1
IOC & scope: pypi:mcp-server-postgres-plus==0.2.1 (Slopsquatting LLM Hallucination Package). Verified by human review and signed into the CC-BY 4.0 OSV v1.6.0 feed.
Run live in Counter Workbench
Signed in /feed.json (.sig).
Deterministic capability profile and taxonomy mapping.
Every artifact in the threat.cafe ledger is profiled across eight execution vectors and mapped to the OWASP Top 10 for Agentic Applications (ASI01-ASI10) and Agentic Skills & Tools (AST01-AST10).
8-Vector Capability X-Ray (ABOM)
-
1. Filesystem
Sensitive paths touched:
None observed -
2. Environment
Variables harvested:
DATABASE_URL, PGPASSWORD, POSTGRES_CONNECTION_STRING -
3. Network
Outbound egress domains:
pg-metrics-collector.invalid:443 -
4. Subprocess
Process execution primitives:
None observed -
5. Lifecycle
Install / startup hooks:
None observed -
6. OAuth / MCP
Declared scopes:
None observed -
7. Obfuscation
Encoding / steganography:
None observed -
8. Provenance
Attestation status:
llm_hallucination_slopsquat
Governance & detector mapping
- OWASP Agentic ASI (2026): ASI03 (Identity & Privilege Abuse), ASI04 (Agentic Supply Chain Vulnerabilities)
- OWASP Agentic AST (2026): AST01 (Malicious MCP Servers), AST06 (Unverified Third-Party Skills)
- Deterministic rules matched:
RULE_05_PROMPT_EXFIL_SHELL, RULE_06_RELEASE_AGE_GATE
Version scoping & related records
- No other versions of this package are currently listed on the board. Unlisted versions evaluate to
unknownunder localpolicy.yml.
Local CLI verification
$ threat-cafe-hook check "pypi:mcp-server-postgres-plus==0.2.1" [threat.cafe] known_bad: pypi:mcp-server-postgres-plus==0.2.1 (TC-2026-0047) Reason: Slopsquatted PyPI package registered to match a hallucinated MCP package name frequently r Source: https://socket.dev/blog (credited to Socket Security)
OSV v1.6.0 machine-readable record
Included in /feed.json under CC-BY 4.0 license and verified by /feed.json.sig.
{
"schema_version": "1.6.0",
"id": "TC-2026-0047",
"modified": "2026-04-09T14:20:00Z",
"published": "2026-04-09T14:20:00Z",
"summary": "Slopsquatted PyPI package registered to match a hallucinated MCP package name frequently recommended by coding LLMs; steals PGPASSWORD and DATABASE_URL on import.",
"affected": [
{
"package": {
"ecosystem": "pypi",
"name": "mcp-server-postgres-plus"
},
"versions": [
"0.2.1"
]
}
],
"credits": [
{
"name": "Socket Security",
"type": "FINDER"
}
],
"references": [
{
"type": "ADVISORY",
"url": "https://socket.dev/blog"
},
{
"type": "WEB",
"url": "https://threat.cafe/incidents/tc-2026-0047/"
}
],
"database_specific": {
"target": "pypi:mcp-server-postgres-plus==0.2.1",
"kind": "mcp",
"verdict": "known_bad",
"ioc": "pypi:mcp-server-postgres-plus==0.2.1 (Slopsquatting LLM Hallucination Package)",
"artifact_sha256": "ac1df61612eea458c3e5b208ffff35d682ccaf121d4dfff26cd146f364feb794",
"owasp_asi": [
"ASI03",
"ASI04"
],
"owasp_ast": [
"AST01",
"AST06"
],
"rules_matched": [
"RULE_05_PROMPT_EXFIL_SHELL",
"RULE_06_RELEASE_AGE_GATE"
],
"abom": {
"fs_sensitive": [],
"env_harvest": [
"DATABASE_URL",
"PGPASSWORD",
"POSTGRES_CONNECTION_STRING"
],
"net_egress": [
"pg-metrics-collector.invalid:443"
],
"proc_exec": [],
"install_hooks": [],
"oauth_scopes": [],
"obfuscation": [],
"provenance": "llm_hallucination_slopsquat"
},
"license": "CC-BY-4.0",
"record_digest": "sha256:285789b2fd7eea8340e34d3ef03b4eb7bf0a0142d10260995825624984b6de35",
"release_signature_url": "https://threat.cafe/feed.json.sig"
}
}
Have additional IOCs or a maintainer remediation update for TC-2026-0047?
Maintainer disputes and version-scoping updates are reviewed by a human within our 48-hour dispute SLA.