{"id":20679,"date":"2026-09-11T00:32:15","date_gmt":"2026-09-10T16:32:15","guid":{"rendered":"https:\/\/www.54iter.cn\/?vuln=cve-2026-15461"},"modified":"2026-09-11T00:32:15","modified_gmt":"2026-09-10T16:32:15","slug":"cve-2026-15461","status":"publish","type":"vuln","link":"https:\/\/www.54iter.cn\/?vuln=cve-2026-15461","title":{"rendered":"CVE-2026-15461 [MEDIUM] &#8211; The Sierra Wireless HL78xx modem GNSS driver (drivers\/modem\/hl78xx\/, later drivers\/modem\/v"},"content":{"rendered":"<p>The Sierra Wireless HL78xx modem GNSS driver (drivers\/modem\/hl78xx\/, later drivers\/modem\/vendor_standalone\/hl78xx\/) embeds a generic struct gnss_nmea0183_match_data match_data inside struct hl78xx_gnss_data. The generic NMEA0183 match helper (drivers\/gnss\/gnss_nmea0183_match.c) requires that context to be the first member because its callbacks cast user_data directly to struct gnss_nmea0183_match_data . In the affected releases match_data was the second member (after const struct device dev), so it sat at a non-zero offset while gnss_nmea0183_match_init() initialized it at the correct address. The registered NMEA handlers instead pass the whole device data object (data-&gt;devices.gnss-&gt;data, offset 0), producing an offset-shifted type confusion between where state is initialized and where the parse callbacks read and write it.<\/p>\n<p>When NMEA sentences from the GNSS receiver are parsed, the GGA\/RMC callbacks write parsed fix data into the wrong location within the struct, and the GSV callback (gnss_nmea0183_match_gsv_callback, active under CONFIG_GNSS_SATELLITES) reads its satellites pointer and bound from the wrong offsets \u2014 non-pointer bytes of struct hl78xx_gnss_data \u2014 and then writes parsed struct gnss_satellite entries through that bogus pointer. This is a write through an uninitialized\/wild pointer with a garbage bound.<\/p>\n<p>The NMEA handlers are registered by default (CONFIG_HL78XX_GNSS_SOURCE_NMEA is the default GNSS source) on devices using the HL78xx GNSS. The driver runs in kernel context and the NMEA data originates from the GNSS radio front-end, so a party able to influence the GNSS signal (for example GNSS\/GPS spoofing at radio proximity) can drive the kernel-side parser into the faulty write. The most likely impact is a crash (denial of service) because the bogus pointer resolves to a fixed near-NULL value, with adjacent-memory corruption possible on MMU-less targets. Confidentiality is not affected. Exploitation requires the satellites feature to be enabled and active, so attack complexity is high.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>The Sierra Wireless HL78xx modem GNSS driver (drivers\/modem\/hl78xx\/, later drivers\/modem\/vendor_standalone\/hl78xx\/) embeds a generic struct gnss_nmea0183_match_data match_data inside struct hl78xx_gns<\/p>\n","protected":false},"template":"","meta":[],"categories":[],"tags":[],"class_list":["post-20679","vuln","type-vuln","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/www.54iter.cn\/index.php?rest_route=\/wp\/v2\/vuln\/20679","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.54iter.cn\/index.php?rest_route=\/wp\/v2\/vuln"}],"about":[{"href":"https:\/\/www.54iter.cn\/index.php?rest_route=\/wp\/v2\/types\/vuln"}],"wp:attachment":[{"href":"https:\/\/www.54iter.cn\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=20679"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.54iter.cn\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=20679"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.54iter.cn\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=20679"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}