{"id":"CVE-2026-119284","kind":"vulnerability","aliases":["CVE-2026-119284"],"related":[],"title":"joserfc: oversized JWS input causes memory exhaustion before size check","description":"joserfc is a Python library that provides an implementation of several JSON Object Signing and Encryption (JOSE) standards. Prior to 1.7.6, joserfc compact JWS deserialization calls bytes.split() before enforcing the existing aggregate segment-size limits. When attacker-controlled compact serialization bytes reach deserialize_compact(), the split creates copies of the header, payload, and signature segments before ExceededSizeError rejects them, causing an additional allocation approximately proportional to the supplied token. Requests that exhaust available process memory can therefore cause an availability failure even though signature verification fails. This issue is fixed in version 1.7.6.","summary":"joserfc is a Python library for JOSE standards such as JWS and JWE. Before version 1.7.6, compact JWS deserialization copied the token's segments before enforcing its size limit, so a large attacker-supplied token can exhaust process memory and cause a denial of service.","severity":"medium","cvss":6.9,"epss":null,"exploited":false,"exploited_at":null,"products":[],"ecosystems":[],"tags":["authentication","joserfc","jwt","package","python"],"not_affected_if":["no-untrusted-jws-input","version-1.7.6-or-later"],"how_to_check":"- Check the installed version with `pip show joserfc` and confirm whether it is below `1.7.6`.\n- Search your code for calls to `deserialize_compact()` that receive untrusted input.","fix":"- joserfc: move to `1.7.6` or later.","status":"open","published_at":"2026-10-29T22:17:01+00:00","first_seen_at":"2026-10-29T22:27:06+00:00","triaged_at":"2026-10-29T22:28:47+00:00","updated_at":"2026-10-29T22:28:47+00:00","category":"package","confidence":0.8,"triage":{"at":"2026-10-29T22:28:47Z","model":"claude-haiku-5-5","output":{"fix":"- joserfc: move to `1.7.6` or later.","reach":"network","title":"joserfc: oversized JWS input causes memory exhaustion before size check","impact":"low","summary":"joserfc is a Python library for JOSE standards such as JWS and JWE. Before version 1.7.6, compact JWS deserialization copied the token's segments before enforcing its size limit, so a large attacker-supplied token can exhaust process memory and cause a denial of service.","audience":"developers","category":"package","nicknames":[],"who_cares":["python","joserfc","jwt","authentication"],"confidence":0.8,"fix_status":"available","needs_auth":"no","worst_case":"Process runs out of memory and the service becomes unavailable","analyst_note":"","how_to_check":"- Check the installed version with `pip show joserfc` and confirm whether it is below `1.7.6`.\n- Search your code for calls to `deserialize_compact()` that receive untrusted input.","plain_action":"","needs_analyst":false,"not_affected_if":["no-untrusted-jws-input","version-1.7.6-or-later"],"who_is_affected":"Applications that pass untrusted compact JWS tokens to joserfc's deserialize_compact() before signature verification are exposed to memory exhaustion. Services that only verify tokens they issued internally, or that do not accept attacker-supplied compact JWS, are less exposed.","user_interaction":"no","needs_special_setup":"no","severity_if_unknown":"unknown"},"cost_usd":0.000684,"input_tokens":4245,"output_tokens":520,"severity_before":"medium"},"analyst_status":null,"analyst_note":null,"search":"'-119284':13A,16A '-2026':12A,15A '1.7.6':37B,88C,162C 'addit':131C 'aggreg':99C 'alloc':132C 'approxim':133C 'attack':55B,106C 'attacker-control':105C 'attacker-suppli':54B 'authent':17B 'avail':142C,149C 'byte':110C 'bytes.split':94C 'call':93C 'caus':5A,63B,129C,147C 'check':10A 'compact':38B,90C,108C,113C 'control':107C 'copi':41B,117C 'creat':116C 'cve':11A,14A 'denial':65B 'deseri':40B,92C,112C 'encrypt':83C 'enforc':47B,96C 'even':151C 'exceededsizeerror':126C 'exhaust':7A,59B,141C 'exist':98C 'fail':155C 'failur':150C 'fix':159C 'header':120C 'implement':76C 'input':4A 'issu':157C 'jose':28B,84C 'joserfc':1A,18B,22B,68C,89C 'json':79C 'jwe':34B 'jws':3A,32B,39B,91C 'jwt':19B 'larg':53B 'librari':26B,72C 'limit':50B,103C 'memori':6A,61B,144C 'object':80C 'overs':2A 'packag':20B 'payload':121C 'prior':86C 'process':60B,143C 'proport':134C 'provid':74C 'python':21B,25B,71C 'reach':111C 'reject':127C 'request':139C 'segment':45B,101C,124C 'segment-s':100C 'serial':109C 'servic':67B 'sever':78C 'sign':81C 'signatur':123C,153C 'size':9A,49B,102C 'split':115C 'standard':29B,85C 'suppli':56B,137C 'therefor':146C 'though':152C 'token':43B,57B,138C 'verif':154C 'version':36B,161C","nicknames":[],"mitigations":[],"who_affected":"Applications that pass untrusted compact JWS tokens to joserfc's deserialize_compact() before signature verification are exposed to memory exhaustion. Services that only verify tokens they issued internally, or that do not accept attacker-supplied compact JWS, are less exposed.","tier":"C","verified":{},"analyst_revisit_at":null,"fix_status":"available","audience":"developers","plain_action":null,"first_public_at":"2026-10-29T22:17:01+00:00","kev":null,"cvss_vector":"CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:L/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X","cvss_by":"security-advisories@github.com","poc_count":0,"sources":[{"source":"nvd","external_id":"CVE-2026-119284","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-119284","severity":null,"published_at":"2026-10-29T22:17:01+00:00","modified_at":"2026-10-29T22:17:01+00:00","first_seen_at":"2026-10-29T22:27:06+00:00","fetched_at":"2026-10-29T22:27:06+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"}