{"id":"CVE-2026-120012","kind":"vulnerability","aliases":["CVE-2026-120012"],"related":[],"title":"SAP Cloud SDK for AI (Node.js): error messages can leak authentication credentials","description":"SAP Cloud SDK for AI (Node.js) could inadvertently include sensitive authentication credentials in error messages generated by certain internal operations under specific failure conditions. An attacker with low privileges and access to application logs or forwarded error output could obtain these credentials, but only after waiting for a suitable failure event triggered by a higher-privileged user and within the limited lifetime of the token, making exploitation complex. Successful exploitation could allow the attacker to reuse the disclosed credentials against the associated SAP service, resulting in a high impact on confidentiality, integrity and availability.","summary":"The SAP Cloud SDK for AI for Node.js can place sensitive authentication credentials into error messages produced by some internal operations when specific failures occur. An attacker with low privileges who can read application logs or forwarded error output could reuse the exposed credentials against the associated SAP service.","severity":"high","cvss":7.5,"epss":null,"exploited":false,"exploited_at":null,"products":[{"name":"@sap-ai-sdk/ai-api","fixed":["2.18.0"],"affected":"<= 2.17.0","ecosystem":"npm"}],"ecosystems":[],"tags":["ai-sdk","ai-tooling","node.js","npm","sap","sap-cloud-sdk-for-ai"],"not_affected_if":["logs-restricted","patched-2.18.0","sdk-not-used"],"how_to_check":"- Run npm ls @sap-ai-sdk/ai-api (also check lockfiles). Versions <= 2.17.0 are affected; 2.18.0 is patched.\n- Also check if you use other @sap-ai-sdk packages that depend on ai-api; the advisory names only @sap-ai-sdk/ai-api.\n- Review who can read application logs and forwarded error output, and search them for leaked tokens.","fix":"Upgrade @sap-ai-sdk/ai-api to 2.18.0 or later (npm install @sap-ai-sdk/ai-api@2.18.0). The patch removes the destination from logged values. SAP states no workaround is available. Consider rotating credentials that may have appeared in logs.","status":"open","published_at":"2026-11-10T09:17:22+00:00","first_seen_at":"2026-11-10T09:21:08+00:00","triaged_at":"2026-11-10T09:21:23+00:00","updated_at":"2026-11-10T09:22:39+00:00","category":"ai-tooling","confidence":0.9,"triage":{"at":"2026-11-10T09:21:23Z","model":"claude-haiku-5-5","output":{"fix":"unknown","reach":"local","title":"SAP Cloud SDK for AI (Node.js): error messages can leak authentication credentials","impact":"high","summary":"The SAP Cloud SDK for AI for Node.js can place sensitive authentication credentials into error messages produced by some internal operations when specific failures occur. An attacker with low privileges who can read application logs or forwarded error output could reuse the exposed credentials against the associated SAP service.","audience":"developers","category":"ai-tooling","nicknames":[],"who_cares":["sap","node.js","sap-cloud-sdk-for-ai","ai-sdk"],"confidence":0.6,"fix_status":"unknown","needs_auth":"yes","worst_case":"Reusable authentication credentials for the SAP service get exposed.","analyst_note":"Confirm affected and fixed SDK versions from the SAP advisory (linked vendor advisory, github.com) and the NVD entry.","how_to_check":"- Check whether the application uses `@sap-ai-sdk` packages in its Node.js dependencies (for example `npm ls` filtered to `@sap-ai-sdk`).\n- Review where application logs and error output are stored or forwarded, and who can read them.\n- Affected and fixed versions: unknown; the sources given do not name them.","plain_action":"","product_name":"","needs_analyst":true,"not_affected_if":["sdk-not-used","logs-restricted"],"who_is_affected":"Teams running a Node.js application built with the SAP Cloud SDK for AI whose logs or forwarded error output can be read by low-privileged users. Exploitation needs a failure event triggered by a higher-privileged user and must happen within the short lifetime of the token, so it is complex. Applications that do not use the SDK, or that keep error output strictly restricted, can skip it.","user_interaction":"no","product_ecosystem":"","needs_special_setup":"unknown","severity_if_unknown":"high"},"cost_usd":0.000803,"input_tokens":4664,"output_tokens":673,"severity_before":"high"},"analyst_status":"done","analyst_note":"Confirm affected and fixed SDK versions from the SAP advisory (linked vendor advisory, github.com) and the NVD entry.","search":"'-120012':15A,18A '-2026':14A,17A '/ai-api':23A 'access':118C 'ai':5A,21A,25B,28B,38B,44B,92C 'ai-sdk':24B 'ai-tool':27B 'allow':160C 'applic':72B,120C 'associ':85B,170C 'attack':65B,113C,162C 'authent':11A,50B,98C 'avail':182C 'certain':105C 'cloud':2A,35B,41B,89C 'complex':156C 'condit':111C 'confidenti':179C 'could':78B,94C,126C,159C 'credenti':12A,51B,82B,99C,129C,167C 'cve':13A,16A 'disclos':166C 'error':7A,53B,76B,101C,124C 'event':138C 'exploit':155C,158C 'expos':81B 'failur':62B,110C,137C 'forward':75B,123C 'generat':103C 'high':176C 'higher':143C 'higher-privileg':142C 'impact':177C 'inadvert':95C 'includ':96C 'integr':180C 'intern':58B,106C 'leak':10A 'lifetim':150C 'limit':149C 'log':73B,121C 'low':67B,115C 'make':154C 'messag':8A,54B,102C 'node.js':6A,30B,46B,93C 'npm':31B 'obtain':127C 'occur':63B 'oper':59B,107C 'output':77B,125C 'place':48B 'privileg':68B,116C,144C 'produc':55B 'read':71B 'result':173C 'reus':79B,164C 'sap':1A,20A,32B,34B,40B,86B,88C,171C 'sap-ai-sdk':19A 'sap-cloud-sdk-for-ai':33B 'sdk':3A,22A,26B,36B,42B,90C 'sensit':49B,97C 'servic':87B,172C 'specif':61B,109C 'success':157C 'suitabl':136C 'token':153C 'tool':29B 'trigger':139C 'user':145C 'wait':133C 'within':147C","nicknames":[],"mitigations":[],"who_affected":"Node.js applications that use @sap-ai-sdk/ai-api version 2.17.0 or older and whose logs or forwarded error output can be read by low-privileged users. Exploitation needs a failure triggered by a higher-privileged user and must happen within the token's short lifetime. Apps that do not use the package, are on 2.18.0+, or keep logs strictly restricted can skip it.","tier":"B","verified":{"fix":{"at":"2026-11-10T09:22:39Z","by":"analyst","doc":"https://github.com/SAP/ai-sdk-js/security/advisories/GHSA-8g7j-49xg-8wf3","run_id":2427},"products":{"at":"2026-11-10T09:22:39Z","by":"analyst","doc":"https://github.com/SAP/ai-sdk-js/security/advisories/GHSA-8g7j-49xg-8wf3","run_id":2427},"how_to_check":{"at":"2026-11-10T09:22:39Z","by":"analyst","doc":"https://github.com/SAP/ai-sdk-js/security/advisories/GHSA-8g7j-49xg-8wf3","run_id":2427},"who_affected":{"at":"2026-11-10T09:22:39Z","by":"analyst","doc":"https://github.com/SAP/ai-sdk-js/security/advisories/GHSA-8g7j-49xg-8wf3","run_id":2427}},"analyst_revisit_at":null,"fix_status":"available","audience":"developers","plain_action":null,"pkeys":["aiapi"],"ptokens":["ai","api","sap","sdk"],"labels":["aisdk","aitooling","high","nodejs","npm","sap","sapcloudsdkforai"],"campaign_type":null,"search_a":"'-120012':15A,18A '-2026':14A,17A '/ai-api':23A 'ai':5A,21A 'authent':11A 'cloud':2A 'credenti':12A 'cve':13A,16A 'error':7A 'leak':10A 'messag':8A 'node.js':6A 'sap':1A,20A 'sap-ai-sdk':19A 'sdk':3A,22A","search_b":"'ai':25B,28B,38B,44B 'ai-sdk':24B 'ai-tool':27B 'applic':72B 'associ':85B 'attack':65B 'authent':50B 'cloud':35B,41B 'could':78B 'credenti':51B,82B 'error':53B,76B 'expos':81B 'failur':62B 'forward':75B 'intern':58B 'log':73B 'low':67B 'messag':54B 'node.js':30B,46B 'npm':31B 'occur':63B 'oper':59B 'output':77B 'place':48B 'privileg':68B 'produc':55B 'read':71B 'reus':79B 'sap':32B,34B,40B,86B 'sap-cloud-sdk-for-ai':33B 'sdk':26B,36B,42B 'sensit':49B 'servic':87B 'specif':61B 'tool':29B","search_c":"'access':118C 'ai':92C 'allow':160C 'applic':120C 'associ':170C 'attack':113C,162C 'authent':98C 'avail':182C 'certain':105C 'cloud':89C 'complex':156C 'condit':111C 'confidenti':179C 'could':94C,126C,159C 'credenti':99C,129C,167C 'disclos':166C 'error':101C,124C 'event':138C 'exploit':155C,158C 'failur':110C,137C 'forward':123C 'generat':103C 'high':176C 'higher':143C 'higher-privileg':142C 'impact':177C 'inadvert':95C 'includ':96C 'integr':180C 'intern':106C 'lifetim':150C 'limit':149C 'log':121C 'low':115C 'make':154C 'messag':102C 'node.js':93C 'obtain':127C 'oper':107C 'output':125C 'privileg':116C,144C 'result':173C 'reus':164C 'sap':88C,171C 'sdk':90C 'sensit':97C 'servic':172C 'specif':109C 'success':157C 'suitabl':136C 'token':153C 'trigger':139C 'user':145C 'wait':133C 'within':147C","cause_entry":null,"cause_path":null,"disclosures_checked_at":null,"first_public_at":"2026-11-10T07:58:38+00:00","kev":null,"cvss_vector":"CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:U/C:H/I:H/A:H","cvss_by":"cna@sap.com","poc_count":0,"sources":[{"source":"nvd","external_id":"CVE-2026-120012","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-120012","severity":null,"published_at":"2026-11-10T09:17:22+00:00","modified_at":"2026-11-10T09:17:22+00:00","first_seen_at":"2026-11-10T09:21:08+00:00","fetched_at":"2026-11-10T09:21:08+00:00","note":null},{"source":"analyst","external_id":"CVE-2026-120012:2427","url":null,"severity":null,"published_at":"2026-11-10T09:22:39+00:00","modified_at":"2026-11-10T09:22:39+00:00","first_seen_at":"2026-11-10T09:22:39+00:00","fetched_at":"2026-11-10T09:22:39+00:00","note":"Read SAP GHSA-8g7j-49xg-8wf3: @sap-ai-sdk/ai-api <= 2.17.0 affected, 2.18.0 patched (destination removed from logged values), no workaround. Other @sap-ai-sdk packages not named."}],"documents":[{"id":114128,"url":"https://github.com/SAP/ai-sdk-js/security/advisories/GHSA-8g7j-49xg-8wf3","title":"Vendor advisory: github.com","kind":"vendor","source":"nvd","publisher":"vendor","text":null,"published_at":"2026-11-10T07:58:38+00:00","relation":"advisory","confidence":null,"note":"Vendor advisory: github.com"}],"disclosures":[],"exploit_sources":[],"notice":"Free to read, with fair use of about 60 pages a minute. For higher limits or API access: sales@infrastack.ai"}