{"dataType":"CVE_RECORD","dataVersion":"1.0","cveMetadata":{"cveId":"GCVE-110-VULN-PYPI-2026-000630","assignerOrgId":"","assignerShortName":"Vulnetix","state":"PUBLISHED","datePublished":"2026-10-27T21:56:29Z","dateUpdated":"2026-10-27T22:45:37Z","dateReserved":""},"containers":{"cna":{"providerMetadata":null,"title":"","descriptions":[{"lang":"en","value":"If you run aimarket-platon 0.1.0 through 0.1.3 without PLATON_STEER_TOKEN and outside production mode, which is the default, anyone who can reach its port can steer and project the shared world (POST /api/steer, /api/project, the beacon checkpoint, the platon.steer@v1 and platon.project@v1 capabilities behind POST /ai-market/invoke, and the websocket writes): main._write_authorized returns true for every request, and the server binds 0.0.0.0 by default (config.Settings.host), so a developer who runs it locally opens it to their network. Source version 0.1.4 (commit 1c8944d, never published to PyPI) accepts only callers it judges local, which a reverse proxy on the same host passes. Fixed in 0.1.5 for callers on other hosts and for a proxy that runs as a different user on Linux: without a token, writes need a loopback caller whose socket belongs to the server's user, unless PLATON_PUBLIC_WRITES=1 opens them on purpose. A proxy running as the same user, or any proxy on macOS or Windows, is still treated as local (GCVE-110-VULN-PYPI-2026-000643). The rate limit on the same server is GCVE-110-VULN-PYPI-2026-000615. Affects 0.1.0 through 0.1.3.","supportingMedia":null}],"references":[{"url":"https://pypi.org/project/aimarket-platon/","name":"","tags":["advisory"]},{"url":"https://github.com/alexar76/platon/commit/d99e043dd6a52cea10d66d07cedbc98ad67cfc67","name":"Fix: platon 0.1.5","tags":["fix"]},{"url":"https://pypi.org/project/aimarket-platon/0.1.5/","name":"aimarket-platon 0.1.5","tags":["release"]}],"metrics":[{"format":"","scenarios":null,"cvssV2_0":null,"cvssV3_0":null,"cvssV3_1":{"version":"3.1","vectorString":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:N","baseScore":5.3,"baseSeverity":"MEDIUM"},"cvssV4_0":null,"other":null}],"problemTypes":[{"descriptions":[{"lang":"en","description":"Initialization of a Resource with an Insecure Default","cweId":"CWE-1188","type":"CWE"}]},{"descriptions":[{"lang":"en","description":"Missing Authentication for Critical Function","cweId":"CWE-306","type":"CWE"}]}],"affected":[{"vendor":"pypi","product":"aimarket-platon","collectionURL":"https://pypi.org","packageName":"aimarket-platon","repo":"","defaultStatus":"unaffected","versions":[{"version":"0.1.0","status":"affected","versionType":"python","lessThan":"0.1.5","lessThanOrEqual":"","changes":null},{"version":"0.1.5","status":"unaffected","versionType":"python","lessThan":"","lessThanOrEqual":"","changes":null}],"cpes":null,"modules":["platon.main"],"programFiles":["platon/main.py"],"programRoutines":[{"name":"platon.main._write_authorized"},{"name":"platon.main.steer"},{"name":"platon.main.project"},{"name":"platon.main.ai_market_invoke"}],"platforms":null}],"cpeApplicability":null,"rejectedReasons":null,"replacedBy":null},"adp":null}}