{"id":"CVE-2026-98522","kind":"vulnerability","aliases":["CVE-2026-98522"],"related":[],"title":"Linux kernel PowerVR driver: map failure is ignored, causing a NULL pointer crash","description":"In the Linux kernel, the following vulnerability has been resolved:\n\ndrm/imagination: Propagate map failures correctly from pvr_mmu_map_sgl()\n\nMap failure from pvr_mmu_map_sgl() interface was not returned correctly\nto pvr_mmu_map() interface. This resulted in pvr_mmu_map() interface to\ncontinue instead of returning an error to caller.\nFix it by returning a proper error code from pvr_mmu_map_sgl() interface.\n\nCall stack for crash:\n[ 1179.286237] Unable to handle kernel NULL pointer dereference at virtual address 0000000000000008\n[ 1179.295067] Mem abort info:\n[ 1179.297877]   ESR = 0x0000000096000004\n[ 1179.301656]   EC = 0x25: DABT (current EL), IL = 32 bits\n[ 1179.306987]   SET = 0, FnV = 0\n[ 1179.310048]   EA = 0, S1PTW = 0\n[ 1179.313198]   FSC = 0x04: level 0 translation fault\n[ 1179.318096] Data abort info:\n[ 1179.320993]   ISV = 0, ISS = 0x00000004, ISS2 = 0x00000000\n[ 1179.326483]   CM = 0, WnR = 0, TnD = 0, TagAccess = 0\n[ 1179.331546]   GCS = 0, Overlay = 0, DirtyBit = 0, Xs = 0\n[ 1179.336895] user pgtable: 4k pages, 48-bit VAs, pgdp=000000009822a000\n[ 1179.343402] [0000000000000008] pgd=0000000000000000, p4d=0000000000000000\n[ 1179.350243] Internal error: Oops: 0000000096000004 [#2]  SMP\n[ 1179.355908] Modules linked in: powervr gpu_sched drm_shmem_helper drm_gpuvm drm_exec xhci_plat_hcd xhci_hcd dwc3 usbcore usb_common snd_soc_simple_card snd_soc_simple_card_utils dwc3_am62 at24 sa2ul sha512 libsha512 sha256 authenc sch_fq_codel fuse dm_mod ipv6\n[ 1179.378992] CPU: 1 UID: 1000 PID: 680 Comm: deqp-vk Tainted: G      D             6.17.0 #1 PREEMPT\n[ 1179.388120] Tainted: [D]=DIE\n[ 1179.390994] Hardware name: Texas Instruments AM625 SK (DT)\n[ 1179.396467] pstate: 00000005 (nzcv daif -PAN -UAO -TCO -DIT -SSBS BTYPE=--)\n[ 1179.403415] pc : pvr_mmu_op_context_unmap_curr_page+0x6c/0x134 [powervr]\n[ 1179.410140] lr : pvr_mmu_op_context_unmap_curr_page+0x58/0x134 [powervr]\n[ 1179.416848] sp : ffff8000839ab8c0\n[ 1179.420153] x29: ffff8000839ab8c0 x28: 0000000000000001 x27: 000000008f386000\n[ 1179.427283] x26: ffff000016d1df98 x25: 0000000000247000 x24: 00000000000001e6\n[ 1179.434413] x23: 0000000000000002 x22: 000000000000ffff x21: 0000000000000247\n[ 1179.441540] x20: 0000000000000245 x19: ffff000016d1df60 x18: 0000000000000002\n[ 1179.448668] x17: 0000000000000000 x16: 0000000000000000 x15: 0000000000000001\n[ 1179.455793] x14: 0000000000060810 x13: ffff80007fffffff x12: ffff000004190480\n[ 1179.462921] x11: ffff8000853f7000 x10: ffff8000811ae000 x9 : ffff0000041900b8\n[ 1179.470051] x8 : 0000000000000000 x7 : 00000000990c4001 x6 : 0000000000000007\n[ 1179.477177] x5 : ffff000016d1df60 x4 : 0000000000000000 x3 : ffff00000a7d8000\n[ 1179.484306] x2 : 00000000000001ff x1 : 0000000000000000 x0 : 0000000000000000\n[ 1179.491433] Call trace:\n[ 1179.493872]  pvr_mmu_op_context_unmap_curr_page+0x6c/0x134 [powervr] (P)\n[ 1179.500582]  pvr_mmu_map+0x31c/0x388 [powervr]\n[ 1179.505027]  pvr_vm_gpuva_map+0x40/0x88 [powervr]\n[ 1179.509732]  __drm_gpuvm_sm_map+0x250/0x44c [drm_gpuvm]\n[ 1179.514952]  drm_gpuvm_sm_map+0x48/0x5c [drm_gpuvm]\n[ 1179.519822]  pvr_vm_bind_op_exec+0x64/0x70 [powervr]\n[ 1179.524785]  pvr_vm_map+0x1f8/0x2a8 [powervr]\n[ 1179.529142]  pvr_ioctl_vm_map+0x12c/0x188 [powervr]\n[ 1179.534018]  drm_ioctl_kernel+0xb8/0x128\n[ 1179.537941]  drm_ioctl+0x21c/0x4ec\n[ 1179.541337]  __arm64_sys_ioctl+0xac/0x108\n[ 1179.545344]  invoke_syscall+0x44/0x100\n[ 1179.549091]  el0_svc_common.constprop.0+0x40/0xe0\n[ 1179.553790]  do_el0_svc+0x1c/0x28\n[ 1179.557106]  el0_svc+0x34/0xf0\n[ 1179.560159]  el0t_64_sync_handler+0xd0/0xe4\n[ 1179.564334]  el0t_64_sync+0x198/0x19c\n[ 1179.567996] Code: 54000300 35000360 f9402261 79409a62 (f9400421)\n[ 1179.574081] ---[ end trace 0000000000000000 ]---","summary":"In the Linux kernel's Imagination PowerVR GPU driver (drm/imagination), a page-table map failure in pvr_mmu_map_sgl() was not returned to its caller, so pvr_mmu_map() kept going and dereferenced a NULL pointer. The reported result is a kernel oops from a local GPU ioctl; the sources do not describe code execution.","severity":"low","cvss":null,"epss":null,"exploited":false,"exploited_at":null,"products":[],"ecosystems":[],"tags":["arm64","drm","embedded","linux-kernel","powervr","runtime"],"not_affected_if":["driver-not-loaded","no-powervr-gpu"],"how_to_check":"- unknown","fix":"- Update the Linux kernel to a release that includes the upstream commit 'drm/imagination: Propagate map failures correctly from pvr_mmu_map_sgl()'; the sources do not give the fixed version numbers.","status":"open","published_at":"2026-10-18T16:17:03+00:00","first_seen_at":"2026-10-23T21:57:15+00:00","triaged_at":"2026-10-25T05:25:11+00:00","updated_at":"2026-10-25T05:25:11+00:00","category":"runtime","confidence":0.6,"triage":{"at":"2026-10-25T05:25:11Z","model":"claude-haiku-5-5","output":{"fix":"- Update the Linux kernel to a release that includes the upstream commit 'drm/imagination: Propagate map failures correctly from pvr_mmu_map_sgl()'; the sources do not give the fixed version numbers.","reach":"local","title":"Linux kernel PowerVR driver: map failure is ignored, causing a NULL pointer crash","impact":"low","summary":"In the Linux kernel's Imagination PowerVR GPU driver (drm/imagination), a page-table map failure in pvr_mmu_map_sgl() was not returned to its caller, so pvr_mmu_map() kept going and dereferenced a NULL pointer. The reported result is a kernel oops from a local GPU ioctl; the sources do not describe code execution.","category":"runtime","nicknames":[],"who_cares":["linux-kernel","drm","powervr","arm64","embedded"],"confidence":0.6,"needs_auth":"unknown","worst_case":"kernel oops from a GPU ioctl; denial of service on the device","analyst_note":"","how_to_check":"- unknown","needs_analyst":false,"not_affected_if":["no-powervr-gpu","driver-not-loaded"],"who_is_affected":"Systems running a Linux kernel with the PowerVR (drm/imagination) GPU driver loaded, such as boards with Imagination GPUs (the reported crash is on a TI AM625 with a PowerVR GPU). Systems without that GPU driver, or with no such GPU hardware, are not affected.","user_interaction":"no","needs_special_setup":"yes","severity_if_unknown":"low"},"cost_usd":0.000817,"input_tokens":5391,"output_tokens":555,"severity_before":"unknown"},"analyst_status":null,"analyst_note":null,"search":"'+0':349C,361C,448C,456C,464C,472C,481C,491C,498C,506C,513C,518C,524C,529C,534C,540C,545C,552C,558C '-2026':15A,18A '-98522':16A,19A '0':186C,188C,191C,193C,198C,207C,214C,216C,218C,220C,223C,225C,227C,229C,533C '0000000000000000':243C,245C,397C,399C,418C,427C,434C,436C,570C '0000000000000001':371C,401C '0000000000000002':383C,394C '0000000000000007':422C '0000000000000008':167C,241C '00000000000001e6':380C '00000000000001ff':432C '0000000000000245':390C '0000000000000247':387C '000000000000ffff':385C '0000000000060810':404C '0000000000247000':378C '000000008f386000':373C '0000000096000004':250C '000000009822a000':239C '00000000990c4001':420C '00000005':331C '0x00000000':211C '0x0000000096000004':174C '0x00000004':209C '0x04':196C '0x25':177C '1':302C,315C '1000':304C '1179.286237':156C '1179.295067':168C '1179.297877':172C '1179.301656':175C '1179.306987':184C '1179.310048':189C '1179.313198':194C '1179.318096':201C '1179.320993':205C '1179.326483':212C '1179.331546':221C '1179.336895':230C '1179.343402':240C '1179.350243':246C '1179.355908':253C '1179.378992':300C '1179.388120':317C '1179.390994':321C '1179.396467':329C '1179.403415':340C '1179.410140':352C '1179.416848':364C '1179.420153':367C '1179.427283':374C '1179.434413':381C '1179.441540':388C '1179.448668':395C '1179.455793':402C '1179.462921':409C '1179.470051':416C '1179.477177':423C '1179.484306':430C '1179.491433':437C '1179.493872':440C '1179.500582':452C '1179.505027':459C '1179.509732':467C '1179.514952':476C '1179.519822':485C '1179.524785':494C '1179.529142':501C '1179.534018':509C '1179.537941':515C '1179.541337':520C '1179.545344':526C '1179.549091':531C '1179.553790':536C '1179.557106':542C '1179.560159':547C '1179.564334':554C '1179.567996':560C '1179.574081':567C '2':251C '32':182C '35000360':563C '48':235C '4k':233C '54000300':562C '6.17.0':314C '64':549C,556C '680':306C '79409a62':565C 'abort':170C,203C 'address':166C 'am62':286C 'am625':326C 'arm64':20B,521C 'at24':287C 'authenc':292C 'bind':488C 'bit':183C,236C 'btype':339C 'call':152C,438C 'caller':54B,137C 'card':279C,283C 'caus':9A 'cm':213C 'code':83B,145C,561C 'codel':295C 'comm':307C 'common':275C 'context':345C,357C,444C 'continu':130C 'correct':99C,116C 'cpu':301C 'crash':13A,155C 'curr':347C,359C,446C 'current':179C 'cve':14A,17A 'd':313C,319C 'dabt':178C 'daif':333C 'data':202C 'deqp':309C 'deqp-vk':308C 'derefer':163C 'dereferenc':62B 'describ':82B 'die':320C 'dirtybit':226C 'dit':337C 'dm':297C 'driver':4A,36B 'drm':21B,260C,263C,265C,468C,474C,477C,483C,510C,516C 'drm/imagination':37B,95C 'dt':328C 'dwc3':272C,285C 'ea':190C 'ec':176C 'el':180C 'el0':538C,543C 'el0_svc_common.constprop':532C 'el0t':548C,555C 'embed':22B 'end':568C 'error':135C,144C,248C 'esr':173C 'exec':266C,490C 'execut':84B 'f9400421':566C 'f9402261':564C 'failur':6A,43B,98C,106C 'fault':200C 'ffff0000041900b8':415C 'ffff000004190480':408C 'ffff00000a7d8000':429C 'ffff000016d1df60':392C,425C 'ffff000016d1df98':376C 'ffff80007fffffff':406C 'ffff8000811ae000':413C 'ffff8000839ab8c0':366C,369C 'ffff8000853f7000':411C 'fix':138C 'fnv':187C 'follow':90C 'fq':294C 'fsc':195C 'fuse':296C 'g':312C 'gcs':222C 'go':60B 'gpu':35B,76B,258C 'gpuva':462C 'gpuvm':264C,469C,475C,478C,484C 'handl':159C 'handler':551C 'hardwar':322C 'hcd':269C,271C 'helper':262C 'ignor':8A 'il':181C 'imagin':33B 'info':171C,204C 'instead':131C 'instrument':325C 'interfac':112C,121C,128C,151C 'intern':247C 'invok':527C 'ioctl':77B,503C,511C,517C,523C 'ipv6':299C 'iss':208C 'iss2':210C 'isv':206C 'kept':59B 'kernel':2A,25B,31B,71B,88C,160C,512C 'level':197C 'libsha512':290C 'link':255C 'linux':1A,24B,30B,87C 'linux-kernel':23B 'local':75B 'lr':353C 'map':5A,42B,47B,58B,97C,103C,105C,110C,120C,127C,149C,455C,463C,471C,480C,497C,505C 'mem':169C 'mmu':46B,57B,102C,109C,119C,126C,148C,343C,355C,442C,454C 'mod':298C 'modul':254C 'name':323C 'null':11A,64B,161C 'nzcv':332C 'oop':72B,249C 'op':344C,356C,443C,489C 'overlay':224C 'p':451C 'p4d':244C 'page':40B,234C,348C,360C,447C 'page-t':39B 'pan':334C 'pc':341C 'pgd':242C 'pgdp':238C 'pgtabl':232C 'pid':305C 'plat':268C 'pointer':12A,65B,162C 'powervr':3A,26B,34B,257C,351C,363C,450C,458C,466C,493C,500C,508C 'preempt':316C 'propag':96C 'proper':143C 'pstate':330C 'pvr':45B,56B,101C,108C,118C,125C,147C,342C,354C,441C,453C,460C,486C,495C,502C 'report':67B 'resolv':94C 'result':68B,123C 'return':51B,115C,133C,141C 'runtim':27B 's1ptw':192C 'sa2ul':288C 'sch':293C 'sched':259C 'set':185C 'sgl':48B,104C,111C,150C 'sha256':291C 'sha512':289C 'shmem':261C 'simpl':278C,282C 'sk':327C 'sm':470C,479C 'smp':252C 'snd':276C,280C 'soc':277C,281C 'sourc':79B 'sp':365C 'ssbs':338C 'stack':153C 'svc':539C,544C 'sync':550C,557C 'sys':522C 'syscal':528C 'tabl':41B 'tagaccess':219C 'taint':311C,318C 'tco':336C 'texa':324C 'tnd':217C 'trace':439C,569C 'translat':199C 'uao':335C 'uid':303C 'unabl':157C 'unmap':346C,358C,445C 'usb':274C 'usbcor':273C 'user':231C 'util':284C 'vas':237C 'virtual':165C 'vk':310C 'vm':461C,487C,496C,504C 'vulner':91C 'wnr':215C 'x0':435C 'x1':433C 'x10':412C 'x11':410C 'x12':407C 'x12c/0x188':507C 'x13':405C 'x14':403C 'x15':400C 'x16':398C 'x17':396C 'x18':393C 'x19':391C 'x198/0x19c':559C 'x1c/0x28':541C 'x1f8/0x2a8':499C 'x2':431C 'x20':389C 'x21':386C 'x21c/0x4ec':519C 'x22':384C 'x23':382C 'x24':379C 'x25':377C 'x250/0x44c':473C 'x26':375C 'x27':372C 'x28':370C 'x29':368C 'x3':428C 'x31c/0x388':457C 'x34/0xf0':546C 'x4':426C 'x40/0x88':465C 'x40/0xe0':535C 'x44/0x100':530C 'x48/0x5c':482C 'x5':424C 'x58/0x134':362C 'x6':421C 'x64/0x70':492C 'x6c/0x134':350C,449C 'x7':419C 'x8':417C 'x9':414C 'xac/0x108':525C 'xb8/0x128':514C 'xd0/0xe4':553C 'xhci':267C,270C 'xs':228C","nicknames":[],"mitigations":[],"who_affected":"Systems running a Linux kernel with the PowerVR (drm/imagination) GPU driver loaded, such as boards with Imagination GPUs (the reported crash is on a TI AM625 with a PowerVR GPU). Systems without that GPU driver, or with no such GPU hardware, are not affected.","tier":"C","verified":{},"analyst_revisit_at":null,"first_public_at":"2026-10-18T16:17:03+00:00","kev":null,"cvss_vector":null,"cvss_by":null,"poc_count":0,"sources":[{"source":"nvd","external_id":"CVE-2026-98522","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-98522","severity":null,"published_at":"2026-10-18T16:17:03+00:00","modified_at":"2026-10-19T10:19:06+00:00","first_seen_at":"2026-10-23T21:57:15+00:00","fetched_at":"2026-10-23T22:28:56+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"}