CVE-2026-43312Linux内核中的ov5647摄像头驱动程序存在初始化顺序错误漏洞。在驱动加载过程中,`ov5647_init_controls()`函数在子设备初始化之前被调用,导致访问未初始化的子设备数据。当特定错误条件触发时,系统会发生空指针解引用,从而导致内核崩溃和本地拒绝服务。
该漏洞位于Linux内核的`drivers/media/i2c/ov5647.c`驱动文件中。问题出在驱动的probe(探测)流程,具体表现为函数调用顺序错误。正确的逻辑应先通过`v4l2_i2c_subdev_init()`初始化子设备并设置私有数据(`i2c_client`指针),然后再调用`ov5647_init_controls()`。
然而,存在漏洞的代码先调用了`ov5647_init_controls()`。该函数内部调用了`v4l2_get_subdevdata()`来获取设备数据,由于此时子设备尚未初始化,获取到的指针为NULL。如果在初始化控制项过程中遇到错误(例如分配内存失败),错误处理路径会尝试访问这个NULL指针(即访问`i2c_client`),导致内核发生空指针引用异常(Kernel Oops/Segfault)。攻击者只需拥有本地低权限即可触发该漏洞,导致系统可用性受损。