{"id":"CVE-2026-99021","kind":"vulnerability","aliases":["CVE-2026-99021"],"related":[],"title":"Linux kernel: regulator bulk lookup leaves supply names uninitialised","description":"In the Linux kernel, the following vulnerability has been resolved:\n\nregulator: of: fill in supply names in of_regulator_bulk_get_all()\n\nof_regulator_bulk_get_all() returns an array it allocated itself, and\nfills in only the consumer of each entry. Every other way of getting a\nbulk array has the supply name set, because the caller provides it, and\nthe core expects it to be there: regulator_bulk_enable() prints it when\na supply fails to enable, so a caller that hands such an array to it\ndereferences uninitialised memory on that path.\n\nCopy each name into the array's own allocation, right behind the\nentries, so that it shares the array's lifetime and callers still have\nnothing extra to free. That also retires the fixed 64 byte stack buffer\nthe names were assembled in, which is_supply_name() never bounded the\ncopy against.","summary":"The Linux kernel's regulator bulk-get helper returned arrays whose supply name fields were never filled in, so a later error print can read uninitialised memory. The fix copies each name into the array's own allocation.","severity":"unknown","cvss":null,"epss":0.00206,"exploited":false,"exploited_at":null,"products":[],"ecosystems":[],"tags":["device-tree","embedded","linux-kernel","runtime"],"not_affected_if":["no-regulator-consumers"],"how_to_check":null,"fix":"- Update the Linux kernel to a release that includes the upstream regulator fix for of_regulator_bulk_get_all() (version unknown from the sources).","status":"open","published_at":"2026-10-23T13:17:25+00:00","first_seen_at":"2026-10-23T21:57:33+00:00","triaged_at":"2026-10-25T04:55:36+00:00","updated_at":"2026-10-25T12:38:50+00:00","category":"runtime","confidence":0.5,"triage":{"at":"2026-10-25T04:55:36Z","model":"claude-haiku-5-5","output":{"fix":"- Update the Linux kernel to a release that includes the upstream regulator fix for of_regulator_bulk_get_all() (version unknown from the sources).","reach":"local","title":"Linux kernel: regulator bulk lookup leaves supply names uninitialised","impact":"low","summary":"The Linux kernel's regulator bulk-get helper returned arrays whose supply name fields were never filled in, so a later error print can read uninitialised memory. The fix copies each name into the array's own allocation.","category":"runtime","nicknames":[],"who_cares":["linux-kernel","embedded","device-tree"],"confidence":0.5,"needs_auth":"unknown","worst_case":"Uninitialised kernel memory may be read on an error path","analyst_note":"Check the upstream kernel commit and stable backport list for affected and fixed kernel versions; the NVD entry gave no CVSS or version ranges.","how_to_check":"unknown","needs_analyst":true,"not_affected_if":["no-regulator-consumers"],"who_is_affected":"Affects systems running a Linux kernel with the regulator subsystem and device-tree regulator consumers that use of_regulator_bulk_get_all(). The sources describe an uninitialised read on an error path, not a remote trigger. Systems without these drivers in use are unlikely to be exposed.","user_interaction":"no","needs_special_setup":"unknown","severity_if_unknown":"low"},"cost_usd":0.000596,"input_tokens":3485,"output_tokens":495,"severity_before":"unknown"},"analyst_status":null,"analyst_note":null,"search":"'-2026':11A,14A '-99021':12A,15A '64':192C 'alloc':62B,94C,166C 'also':188C 'array':34B,59B,92C,112C,149C,163C,176C 'assembl':199C 'behind':168C 'bound':206C 'buffer':195C 'bulk':4A,30B,82C,87C,111C,132C 'bulk-get':29B 'byte':193C 'caller':120C,144C,180C 'consum':101C 'copi':54B,158C,208C 'core':125C 'cve':10A,13A 'derefer':152C 'devic':17B 'device-tre':16B 'embed':19B 'enabl':133C,141C 'entri':104C,170C 'error':46B 'everi':105C 'expect':126C 'extra':184C 'fail':139C 'field':38B 'fill':41B,75C,97C 'fix':53B,191C 'follow':68C 'free':186C 'get':31B,83C,88C,109C 'hand':146C 'helper':32B 'kernel':2A,22B,26B,66C 'later':45B 'leav':6A 'lifetim':178C 'linux':1A,21B,25B,65C 'linux-kernel':20B 'lookup':5A 'memori':51B,154C 'name':8A,37B,56B,78C,116C,160C,197C,204C 'never':40B,205C 'noth':183C 'path':157C 'print':47B,134C 'provid':121C 'read':49B 'regul':3A,28B,73C,81C,86C,131C 'resolv':72C 'retir':189C 'return':33B,90C 'right':167C 'runtim':23B 'set':117C 'share':174C 'stack':194C 'still':181C 'suppli':7A,36B,77C,115C,138C,203C 'tree':18B 'uninitialis':9A,50B,153C 'vulner':69C 'way':107C 'whose':35B","nicknames":[],"mitigations":[],"who_affected":"Affects systems running a Linux kernel with the regulator subsystem and device-tree regulator consumers that use of_regulator_bulk_get_all(). The sources describe an uninitialised read on an error path, not a remote trigger. Systems without these drivers in use are unlikely to be exposed.","tier":"C","verified":{},"analyst_revisit_at":null,"first_public_at":"2026-10-23T13:17:25+00:00","kev":null,"cvss_vector":null,"cvss_by":null,"poc_count":0,"sources":[{"source":"nvd","external_id":"CVE-2026-99021","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-99021","severity":null,"published_at":"2026-10-23T13:17:25+00:00","modified_at":"2026-10-23T13:17:25+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-99021","url":"https://api.first.org/data/v1/epss?cve=CVE-2026-99021","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"}