{"id":"CVE-2026-117472","kind":"vulnerability","aliases":["CVE-2026-117472"],"related":[],"title":"Psono Server: prefixed deployments let write-only API keys read secrets","description":"Psono Server CE && EE versions 4.0.33 through 7.2.3 compared the request path for the bulk-secret-read endpoint with a hard-coded unprefixed path. In deployments configured with URL_PREFIX, the comparison failed and the POST request was authorized using write scope instead of read scope. An authenticated remote attacker with an unusual read-disabled, write-enabled API key could therefore retrieve encrypted secret data and nonces through the prefixed bulk-secret-read endpoint despite lacking read permission. The default configuration without URL_PREFIX was not affected.","summary":"Psono Server versions 4.0.33 through 7.2.3 check the wrong path for the bulk-secret-read endpoint when URL_PREFIX is set, so the read-scope check is skipped. An authenticated attacker holding an API key with write but not read permission can retrieve encrypted secret data and nonces.","severity":"medium","cvss":4.3,"epss":null,"exploited":false,"exploited_at":null,"products":[],"ecosystems":[],"tags":["api-keys","package","psono","self-hosted"],"not_affected_if":["default-config","no-url-prefix","no-write-only-api-keys"],"how_to_check":"- Check whether `URL_PREFIX` is set in the Psono server configuration.\n- Check the installed Psono server version against the affected range `4.0.33` through `7.2.3`.\n- Review API keys for any key that has write enabled and read disabled.","fix":"- Upgrade Psono Server to a version later than `7.2.3`, per the advisory (fixed version unknown from sources).\n- Rotate any API keys that were created with a read-disabled, write-enabled scope if exposure is suspected.","status":"open","published_at":"2026-10-27T06:17:25+00:00","first_seen_at":"2026-10-27T06:25:21+00:00","triaged_at":"2026-10-27T06:26:24+00:00","updated_at":"2026-10-27T06:26:24+00:00","category":"package","confidence":0.8,"triage":{"at":"2026-10-27T06:26:24Z","model":"claude-haiku-5-5","output":{"fix":"- Upgrade Psono Server to a version later than `7.2.3`, per the advisory (fixed version unknown from sources).\n- Rotate any API keys that were created with a read-disabled, write-enabled scope if exposure is suspected.","reach":"internet","title":"Psono Server: prefixed deployments let write-only API keys read secrets","impact":"medium","summary":"Psono Server versions 4.0.33 through 7.2.3 check the wrong path for the bulk-secret-read endpoint when URL_PREFIX is set, so the read-scope check is skipped. An authenticated attacker holding an API key with write but not read permission can retrieve encrypted secret data and nonces.","category":"package","nicknames":[],"who_cares":["self-hosted","psono","api-keys"],"confidence":0.8,"needs_auth":"yes","worst_case":"Attacker reads encrypted secret data and nonces despite lacking read permission.","analyst_note":"Confirm the fixed version number and the exact vendor advisory URL, since sources only give the affected range.","how_to_check":"- Check whether `URL_PREFIX` is set in the Psono server configuration.\n- Check the installed Psono server version against the affected range `4.0.33` through `7.2.3`.\n- Review API keys for any key that has write enabled and read disabled.","needs_analyst":true,"not_affected_if":["default-config","no-url-prefix","no-write-only-api-keys"],"who_is_affected":"Only deployments that set URL_PREFIX are affected, because the hard-coded unprefixed path comparison fails there. The attacker must hold an authenticated API key with write permission and read permission disabled, which is an unusual configuration. Default installations without URL_PREFIX are not affected.","user_interaction":"no","needs_special_setup":"yes","severity_if_unknown":"medium"},"cost_usd":0.000661,"input_tokens":3423,"output_tokens":637,"severity_before":"medium"},"analyst_status":null,"analyst_note":null,"search":"'-117472':15A,18A '-2026':14A,17A '4.0.33':30B,82C '7.2.3':32B,84C 'affect':168C 'api':9A,20B,62B,138C 'api-key':19B 'attack':59B,128C 'authent':58B,126C 'author':117C 'bulk':40B,92C,152C 'bulk-secret-read':39B,91C,151C 'ce':79C 'check':33B,54B 'code':100C 'compar':85C 'comparison':110C 'configur':105C,162C 'could':140C 'cve':13A,16A 'data':74B,145C 'default':161C 'deploy':4A,104C 'despit':156C 'disabl':134C 'ee':80C 'enabl':137C 'encrypt':72B,143C 'endpoint':43B,95C,155C 'fail':111C 'hard':99C 'hard-cod':98C 'hold':60B 'host':26B 'instead':121C 'key':10A,21B,63B,139C 'lack':157C 'let':5A 'nonc':76B,147C 'packag':22B 'path':36B,88C,102C 'permiss':69B,159C 'post':114C 'prefix':3A,46B,108C,150C,165C 'psono':1A,23B,27B,77C 'read':11A,42B,52B,68B,94C,123C,133C,154C,158C 'read-dis':132C 'read-scop':51B 'remot':127C 'request':87C,115C 'retriev':71B,142C 'scope':53B,120C,124C 'secret':12A,41B,73B,93C,144C,153C 'self':25B 'self-host':24B 'server':2A,28B,78C 'set':48B 'skip':56B 'therefor':141C 'unprefix':101C 'unusu':131C 'url':45B,107C,164C 'use':118C 'version':29B,81C 'without':163C 'write':7A,65B,119C,136C 'write-en':135C 'write-on':6A 'wrong':35B","nicknames":[],"mitigations":[],"who_affected":"Only deployments that set URL_PREFIX are affected, because the hard-coded unprefixed path comparison fails there. The attacker must hold an authenticated API key with write permission and read permission disabled, which is an unusual configuration. Default installations without URL_PREFIX are not affected.","tier":"C","verified":{},"analyst_revisit_at":null,"first_public_at":"2026-10-27T06:17:25+00:00","kev":null,"cvss_vector":"CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:N/A:N","cvss_by":"fdf66990-8419-4c8c-8848-ec15d75773b4","poc_count":0,"sources":[{"source":"nvd","external_id":"CVE-2026-117472","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-117472","severity":null,"published_at":"2026-10-27T06:17:25+00:00","modified_at":"2026-10-27T06:17:25+00:00","first_seen_at":"2026-10-27T06:25:21+00:00","fetched_at":"2026-10-27T06:25:21+00:00","note":null}],"documents":[],"notice":"Free to read at a human pace. An API with keys and an MCP server are in preparation; early access: hello@infrastack.ai"}