{"items":[{"id":"NVI-00015392","kind":"vulnerability","title":"praisonaiagents vulnerable to arbitrary file write via unsanitized `user_id` in `FileMemory.__init__()` — path traversal to any writable location","revision":2,"unknowns":["Customer inventory, deployment, reachability and exploitation have not been inspected.","NVD lastModified does not establish freshness of every associated CPE record."],"lifecycle":"active","identifiers":["GHSA-gxmw-5f7x-6g22","CVE-2026-55527"],"plain_summary":"GitHub lists this reviewed advisory for praisonaiagents. Published version ranges and source prerequisites are shown below; this is not an inspection of a visitor’s application.","review_status":"source_listed","control_topics":[],"public_actions":[{"summary":"Identify the exact component and deployed version, examine the linked publisher’s conditions, and retain evidence of any mitigation.","source_ids":["sr-0e95b6e3c5f2cd0d8e347d98eb44fbe4"],"action_type":"investigate","limitations":"Confirm current vendor support, compatibility and deployment evidence. This report has not tested a fix in your system.","current_supported_target":null}],"schema_version":"1.1.0","source_metrics":[{"kind":"CVSS","as_of":"2026-08-25T15:09:55.000Z","value":"7.1 high","meaning":"GitHub source severity; exploitability and local consequence require separate evidence.","source_id":"sr-6357619a2085033425f61f8339f569ff"},{"kind":"CVSS","as_of":"2026-09-09T21:07:31.353Z","value":"7.1 HIGH (3.1)","meaning":"security-advisories@github.com severity; no combined Null risk score.","source_id":"sr-0e95b6e3c5f2cd0d8e347d98eb44fbe4"}],"why_it_matters":"Published affected context helps an owner decide what evidence to gather. This report has not examined your application.","related_sources":[{"id":"sr-6357619a2085033425f61f8339f569ff","url":"https://github.com/advisories/GHSA-gxmw-5f7x-6g22","basis":"vendor_advisory","notes":"GitHub Advisory Database; CC-BY-4.0. Each advisory links its original attribution. Null normalizes fields.","title":"GHSA-gxmw-5f7x-6g22","publisher":"GitHub Advisory Database","observed_at":"2026-11-02T09:56:37.775Z"},{"id":"sr-0e95b6e3c5f2cd0d8e347d98eb44fbe4","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-55527","basis":"official_catalog","notes":"This product uses data from the NVD API but is not endorsed or certified by the NVD.","title":"CVE-2026-55527","publisher":"NIST National Vulnerability Database","observed_at":"2026-11-08T01:48:26.418Z"}],"affected_context":[{"certainty":"source_listed","source_ids":["sr-6357619a2085033425f61f8339f569ff"],"technology":"praisonaiagents","known_exclusions":[],"conditions_summary":"### Summary\n\n`praisonaiagents/memory/file_memory.py::FileMemory.__init__()` constructs all\nmemory file paths by directly joining the `user_id` parameter to a base path:\n\n```python\nself.user_path = self.base_path / user_id      # LINE 145 — no sanitization\n```\n\nNo validation or normalization is applied to `user_id` before the path join.\nAn attacker who can supply a `user_id` containing `../` sequences can write\narbitrary JSON files (memory content) to **any writable location on the filesystem**.\n\nThe vulnerability is confirmed **live on the current `main` branch**\n(`praisonaiagents==1.6.52`) and is **distinct from GHSA-766v-q9x3-g744**\n(which covered `MultiAgentMonitor` in an example file, not `FileMemory` in the\ncore library).\n\n### Details\n\n**Vulnerable code — `praisonaiagents/memory/file_memory.py` lines 139-157:**\n\n```python\ndef __init__(\n    self,\n    user_id: str = \"default\",\n    base_path: Optional[str] = None,\n    ...\n):\n    ...\n    self.user_path = self.base_path / user_id          # LINE 145 — NO SANITIZATION\n    self.episodic_path = self.user_path / \"episodic\"\n\n    self.user_path.mkdir(parents=True, exist_ok=True)  # creates dirs at traversed path\n    self.episodic_path.mk","public_affected_ranges":["< 1.6.58"]}],"null_published_at":"2026-11-08T19:53:44.024Z","source_updated_at":"2026-08-25T15:09:55.000Z","source_disclosed_at":"2026-08-25T15:09:54.000Z","is_synthetic_fixture":false,"null_last_reviewed_at":null,"public_change_summary":"Source facts changed; compare the preserved prior revision.","null_first_observed_at":"2026-11-02T09:56:37.775Z"},{"id":"NVI-00015392","kind":"vulnerability","title":"praisonaiagents vulnerable to arbitrary file write via unsanitized `user_id` in `FileMemory.__init__()` — path traversal to any writable location","revision":1,"unknowns":["Customer inventory, deployment, reachability and exploitation have not been inspected."],"lifecycle":"active","identifiers":["GHSA-gxmw-5f7x-6g22","CVE-2026-55527"],"plain_summary":"GitHub lists this reviewed advisory for praisonaiagents. Published version ranges and source prerequisites are shown below; this is not an inspection of a visitor’s application.","review_status":"source_listed","control_topics":[],"public_actions":[{"summary":"Identify the exact component and deployed version, examine the linked publisher’s conditions, and retain evidence of any mitigation.","source_ids":["sr-6357619a2085033425f61f8339f569ff"],"action_type":"investigate","limitations":"Confirm current vendor support, compatibility and deployment evidence. This report has not tested a fix in your system.","current_supported_target":null}],"schema_version":"1.1.0","source_metrics":[{"kind":"CVSS","as_of":"2026-08-25T15:09:55.000Z","value":"7.1 high","meaning":"GitHub source severity; exploitability and local consequence require separate evidence.","source_id":"sr-6357619a2085033425f61f8339f569ff"}],"why_it_matters":"Published affected context helps an owner decide what evidence to gather. This report has not examined your application.","related_sources":[{"id":"sr-6357619a2085033425f61f8339f569ff","url":"https://github.com/advisories/GHSA-gxmw-5f7x-6g22","basis":"vendor_advisory","notes":"GitHub Advisory Database; CC-BY-4.0. Each advisory links its original attribution. Null normalizes fields.","title":"GHSA-gxmw-5f7x-6g22","publisher":"GitHub Advisory Database","observed_at":"2026-11-02T09:56:37.775Z"}],"affected_context":[{"certainty":"source_listed","source_ids":["sr-6357619a2085033425f61f8339f569ff"],"technology":"praisonaiagents","known_exclusions":[],"conditions_summary":"### Summary\n\n`praisonaiagents/memory/file_memory.py::FileMemory.__init__()` constructs all\nmemory file paths by directly joining the `user_id` parameter to a base path:\n\n```python\nself.user_path = self.base_path / user_id      # LINE 145 — no sanitization\n```\n\nNo validation or normalization is applied to `user_id` before the path join.\nAn attacker who can supply a `user_id` containing `../` sequences can write\narbitrary JSON files (memory content) to **any writable location on the filesystem**.\n\nThe vulnerability is confirmed **live on the current `main` branch**\n(`praisonaiagents==1.6.52`) and is **distinct from GHSA-766v-q9x3-g744**\n(which covered `MultiAgentMonitor` in an example file, not `FileMemory` in the\ncore library).\n\n### Details\n\n**Vulnerable code — `praisonaiagents/memory/file_memory.py` lines 139-157:**\n\n```python\ndef __init__(\n    self,\n    user_id: str = \"default\",\n    base_path: Optional[str] = None,\n    ...\n):\n    ...\n    self.user_path = self.base_path / user_id          # LINE 145 — NO SANITIZATION\n    self.episodic_path = self.user_path / \"episodic\"\n\n    self.user_path.mkdir(parents=True, exist_ok=True)  # creates dirs at traversed path\n    self.episodic_path.mk","public_affected_ranges":["< 1.6.58"]}],"null_published_at":"2026-11-03T10:03:31.362Z","source_updated_at":"2026-08-25T15:09:55.000Z","source_disclosed_at":"2026-08-25T15:09:54.000Z","is_synthetic_fixture":false,"null_last_reviewed_at":null,"public_change_summary":"First indexed by Null; source disclosure date is shown separately.","null_first_observed_at":"2026-11-02T09:56:37.775Z"}],"next_cursor":null,"snapshot_revision":"42594"}