{
  "ticket_id": "CVE-2026-44340",
  "advisory_id": "GHSA-9q28-ghcr-c4x3",
  "cve_id": "CVE-2026-44340",
  "package": "praisonai",
  "ecosystem": "pypi",
  "affected_versions": "< 4.6.37",
  "fixed_versions": ["4.6.37"],
  "cwe": ["CWE-22"],
  "severity": "high",
  "reproduced": true,
  "verified_fix": true,
  "verdict": "confirmed",
  "vulnerability_type": "Path Traversal (ZipSlip via tar symlink linkname)",
  "affected_function": "_safe_extractall",
  "reproduction_summary": "A malicious .praison recipe bundle containing a symlink member with linkname '../../outside' is extracted by LocalRegistry.pull() in the vulnerable version (4.6.36) without validation of the symlink target. The fixed version (4.6.37) rejects the extraction with 'Refusing to extract link escaping target directory'.",
  "evidence": {
    "vulnerable_version": "4.6.36",
    "vulnerable_exit_code": 0,
    "vulnerable_symlink_extracted": true,
    "vulnerable_points_outside": true,
    "vulnerable_symlink_target": "../../outside",
    "fixed_version": "4.6.37",
    "fixed_exit_code": 0,
    "fixed_symlink_extracted": false,
    "fixed_error_message": "Refusing to extract link escaping target directory: escape -> ../../outside"
  },
  "reproduction_script": "repro/reproduction_steps.sh",
  "rca_report": "repro/rca_report.md",
  "runtime_manifest": "repro/runtime_manifest.json",
  "timestamp": "2026-05-22T17:51:20Z"
}
