{"id":"CVE-2026-98952","kind":"vulnerability","aliases":["CVE-2026-98952"],"related":[],"title":"Linux kernel: PFCP session header read past packet end","description":"In the Linux kernel, the following vulnerability has been resolved:\n\npfcp: make sure the SEID is linear before reading it\n\npfcp_encap_recv() only makes sure that the UDP header and the 4 byte\nPFCP header are in the linear area. When the S flag is set,\npfcp_session_recv() then reads the 8 byte SEID that follows, which is\nnot covered by the pskb_may_pull() check.\n\nA short PFCP packet with the S flag set, or one whose session header\nlies in a fragment, therefore makes pfcp_session_recv() read beyond the\nend of the packet data, and whatever it finds there is stored in the\ntunnel metadata that flower later classifies on.\n\nPull up to the end of the SEID before reading it, and drop packets\nthat are too short to contain it. Reload the header pointer afterwards\nsince pskb_may_pull() may reallocate the skb head.\n\nUse offsetofend() rather than sizeof(struct pfcphdr_session): the\nstructure is not packed, so its size is 16 bytes because of the\nalignment of the __be64 member, while the header on the wire is only 12\nbytes, and valid session messages would be dropped.","summary":"The Linux kernel's PFCP tunnel receive path reads an 8-byte session ID beyond the end of short or fragmented packets when the S flag is set. The out-of-bounds data is stored in tunnel metadata that flower classification later uses.","severity":"unknown","cvss":null,"epss":0.00209,"exploited":false,"exploited_at":null,"products":[],"ecosystems":[],"tags":["linux-kernel","networking","pfcp","runtime"],"not_affected_if":[],"how_to_check":"- unknown","fix":"- unknown","status":"open","published_at":"2026-10-23T13:17:16+00:00","first_seen_at":"2026-10-23T21:57:33+00:00","triaged_at":"2026-10-25T04:57:51+00:00","updated_at":"2026-10-25T12:38:50+00:00","category":"runtime","confidence":0.5,"triage":{"at":"2026-10-25T04:57:51Z","model":"claude-haiku-5-5","output":{"fix":"- unknown","reach":"network","title":"Linux kernel: PFCP session header read past packet end","impact":"low","summary":"The Linux kernel's PFCP tunnel receive path reads an 8-byte session ID beyond the end of short or fragmented packets when the S flag is set. The out-of-bounds data is stored in tunnel metadata that flower classification later uses.","category":"runtime","nicknames":[],"who_cares":["linux-kernel","pfcp","networking"],"confidence":0.5,"needs_auth":"no","worst_case":"Out-of-bounds kernel memory read stored in tunnel metadata","analyst_note":"Find the fixed kernel versions and whether PFCP is enabled by default, from the kernel stable commit referenced in the NVD entry.","how_to_check":"- unknown","needs_analyst":true,"not_affected_if":[],"who_is_affected":"Systems running a Linux kernel with the PFCP (pfcp) encapsulation driver in use, where PFCP tunnels receive traffic from the network. The sources do not say which kernel versions are fixed or whether the driver is built in by default, so unknown.","user_interaction":"no","needs_special_setup":"yes","severity_if_unknown":"unknown"},"cost_usd":0.000576,"input_tokens":3595,"output_tokens":433,"severity_before":"unknown"},"analyst_status":null,"analyst_note":null,"search":"'-2026':11A,14A '-98952':12A,15A '12':251C '16':233C '4':98C '8':32B,119C 'afterward':206C 'align':238C 'area':106C 'be64':241C 'beyond':36B,158C 'bound':54B 'byte':33B,99C,120C,234C,252C 'check':133C 'classif':63B 'classifi':179C 'contain':200C 'cover':127C 'cve':10A,13A 'data':55B,164C 'drop':193C,259C 'encap':87C 'end':9A,38B,160C,185C 'find':168C 'flag':47B,110C,141C 'flower':62B,177C 'follow':71C,123C 'fragment':42B,151C 'head':215C 'header':5A,95C,101C,147C,204C,245C 'id':35B 'kernel':2A,18B,24B,69C 'later':64B,178C 'lie':148C 'linear':82C,105C 'linux':1A,17B,23B,68C 'linux-kernel':16B 'make':77C,90C,153C 'may':131C,209C,211C 'member':242C 'messag':256C 'metadata':60B,175C 'network':19B 'offsetofend':217C 'one':144C 'out-of-bound':51B 'pack':228C 'packet':8A,43B,137C,163C,194C 'past':7A 'path':29B 'pfcp':3A,20B,26B,76C,86C,100C,113C,136C,154C 'pfcphdr':222C 'pointer':205C 'pskb':130C,208C 'pull':132C,181C,210C 'rather':218C 'read':6A,30B,84C,117C,157C,190C 'realloc':212C 'receiv':28B 'recv':88C,115C,156C 'reload':202C 'resolv':75C 'runtim':21B 'seid':80C,121C,188C 'session':4A,34B,114C,146C,155C,223C,255C 'set':49B,112C,142C 'short':40B,135C,198C 'sinc':207C 'size':231C 'sizeof':220C 'skb':214C 'store':57B,171C 'struct':221C 'structur':225C 'sure':78C,91C 'therefor':152C 'tunnel':27B,59B,174C 'udp':94C 'use':65B,216C 'valid':254C 'vulner':72C 'whatev':166C 'whose':145C 'wire':248C 'would':257C","nicknames":[],"mitigations":[],"who_affected":"Systems running a Linux kernel with the PFCP (pfcp) encapsulation driver in use, where PFCP tunnels receive traffic from the network. The sources do not say which kernel versions are fixed or whether the driver is built in by default, so unknown.","tier":"C","verified":{},"analyst_revisit_at":null,"first_public_at":"2026-10-23T13:17:16+00:00","kev":null,"cvss_vector":null,"cvss_by":null,"poc_count":0,"sources":[{"source":"nvd","external_id":"CVE-2026-98952","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-98952","severity":null,"published_at":"2026-10-23T13:17:16+00:00","modified_at":"2026-10-23T13:17:16+00:00","first_seen_at":"2026-10-23T21:57:33+00:00","fetched_at":"2026-10-23T22:29:03+00:00","note":null},{"source":"epss","external_id":"CVE-2026-98952","url":"https://api.first.org/data/v1/epss?cve=CVE-2026-98952","severity":null,"published_at":null,"modified_at":null,"first_seen_at":"2026-10-25T12:38:50+00:00","fetched_at":"2026-10-25T12:38:50+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"}