consciousness-explorer / sublinear-time-solver MCP export_state has an arbitrary file write
Impact
An arbitrary file write vulnerability (CWE-73, External Control of File Name or Path) exists in the consciousness-explorer component of sublinear-time-solver. The MCP export_state (and import_state) tool accepted a user-supplied filepath argument and passed it directly to fs.writeFileSync / fs.readFileSync without constraining the destination or rejecting path traversal. An attacker able to invoke the MCP tool could write or overwrite any file accessible to the server process (e.g. ~/.ssh/authorized_keys, application files), leading to integrity loss and potential service disruption.
The same sink class was present in the main solver MCP server (saveVectorToFile / loadVectorFromFile).
Affected versions
consciousness-explorer< 1.1.2sublinear-time-solver< 1.6.0sublinear(crates.io) < 0.2.0
Patches
consciousness-explorer@1.1.2sublinear-time-solver@1.6.0sublinear@0.2.0
State/vector files are now confined to a dedicated directory (overridable via $CONSCIOUSNESS_EXPLORER_STATE_DIR / $SUBLINEAR_SOLVER_VECTOR_DIR), a basename-only contract is enforced (rejecting separators, .., NUL/control chars, hidden files, and Windows reserved names), and files are opened with O_NOFOLLOW | O_CLOEXEC mode 0o600. Covered by 14 regression tests in tests/consciousness/safe-path.test.mjs.
Breaking change: callers must now pass a basename, not an absolute path.
Workarounds
Do not expose the MCP server to untrusted clients; restrict export_state to trusted local users; run the server under a low-privilege account with a restricted working directory.
Czego dotyczy
Kliknij technologię, aby zobaczyć wszystkie dotyczące jej podatności.
| Platforma | Paczka | Podatne wersje | Poprawka w wersji |
|---|---|---|---|
| Paczka npm | consciousness-explorer | < 1.1.2 | 1.1.2 |
| Paczka npm | sublinear-time-solver | < 1.6.0 | 1.6.0 |
Odnośniki
- https://github.com/ruvnet/sublinear-time-solver/security/advisories/GHSA-xc9g-j69q-37xw
- https://github.com/BruceJqs/public_exp/issues/32
- https://github.com/ruvnet/sublinear-time-solver/issues/19
- https://github.com/ruvnet/sublinear-time-solver/pull/20
- https://github.com/ruvnet/sublinear-time-solver/commit/a701296e363192be863e79d788fa268095e3d229
- https://github.com/ruvnet/sublinear-time-solver/commit/ea9a212b69e4449ec443fe088a7aec7546f70b4a
- https://github.com/ruvnet/sublinear-time-solver
- https://github.com/ruvnet/sublinear-time-solver/releases/tag/v1.6.0
- Wektor CVSS
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:H/A:H- Słabość (CWE)
CWE-73- Platforma
- npm
- Paczka
consciousness-explorer, sublinear-time-solver- Ujawniono
- 25.08.2026
- Aktualizacja
- 11.10.2026 10:22
Źródła i licencje
OSV / GitHub Advisory Database - GHSA-xc9g-j69q-37xw - CC BY 4.0
Historia podatności: sublinear-time-solver
Wszystkie opisane podatności tej paczki (Paczka npm), od najnowszej. Widać, czy to jednorazowa wpadka, czy paczka, której trzeba pilnować.
- Wszystkich wpisów
- 2
- Pierwsza → ostatnia
- 05.2026 08.2026
- Bez poprawki
- 1
- Wykorzystywana w atakach
- 0
Rozkład istotności
- Wysoka 1
- Średnia 1
Ujawnienia w latach
- 2026: 2
-
consciousness-explorer / sublinear-time-solver MCP export_state has an arbitrary file write ten wpis
Dowiedz się, które podatności dotyczą Twojej aplikacji
Po podłączeniu integracji DockRay i włączeniu raportowania oprogramowania DockRay porównuje zgłoszone wersje komponentów ze znanymi podatnościami i powiadamia o potwierdzonych dopasowaniach. Zakres zależy od obsługiwanej technologii i dostępnych biuletynów.