{"items":[{"id":"NVI-00013842","kind":"vulnerability","title":"qwed Vulnerable to Authenticated Remote Code Execution via Unsafe SymPy `parse_expr()`","revision":1,"unknowns":["Customer inventory, deployment, reachability and exploitation have not been inspected."],"lifecycle":"active","identifiers":["GHSA-q27q-98j4-9pfv","CVE-2026-55585"],"plain_summary":"GitHub lists this reviewed advisory for qwed. 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-0e73cd21f13c9ea3607448777802cc59"],"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-25T16:25:20.000Z","value":"8.8 high","meaning":"GitHub source severity; exploitability and local consequence require separate evidence.","source_id":"sr-0e73cd21f13c9ea3607448777802cc59"}],"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-0e73cd21f13c9ea3607448777802cc59","url":"https://github.com/advisories/GHSA-q27q-98j4-9pfv","basis":"vendor_advisory","notes":"GitHub Advisory Database; CC-BY-4.0. Each advisory links its original attribution. Null normalizes fields.","title":"GHSA-q27q-98j4-9pfv","publisher":"GitHub Advisory Database","observed_at":"2026-11-02T09:56:37.775Z"}],"affected_context":[{"certainty":"source_listed","source_ids":["sr-0e73cd21f13c9ea3607448777802cc59"],"technology":"qwed","known_exclusions":[],"conditions_summary":"### Summary\n\nThe `qwed` package (version 5.1.1) passes attacker-controlled input directly to SymPy's `parse_expr()` function without a restricted namespace. Because `parse_expr()` internally calls Python's `eval()`, any authenticated tenant can execute arbitrary Python code inside the API server process. The attack requires only a standard user account, which is freely obtainable through the default-enabled `/auth/signup` endpoint. Successful exploitation gives the attacker full read/write access to the filesystem and the ability to execute operating system commands, resulting in complete server compromise.\n\n### Details\n\nThe vulnerability exists in two independently reachable code paths:\n\n**Primary sink — `POST /verify/math`**\n\n`src/qwed_new/api/main.py:442` defines the `/verify/math` route, protected only by `get_current_tenant` (line 444), which accepts any valid tenant API key. The request body field `expression` is read at line 463 and passed through a cosmetic regex normalization at line 495 (`re.sub(r'(\\d)(\\()', r'\\1*\\2', expression)`) that performs no security validation. The normalized string is then passed directly to `parse_expr()` at line 504:\n\n```python\n# src/qwed_new/a","public_affected_ranges":["< 5.1.2"]}],"null_published_at":"2026-11-02T10:00:37.158Z","source_updated_at":"2026-08-25T16:25:20.000Z","source_disclosed_at":"2026-08-25T16:25:19.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"}