Linux: scsi: qla2xxx: Null out freed pointers in qla2x00_mem_alloc() error path
What fixes it
- 5e0d6ffabbbd86b3fb9168b9dbb62190ecb20d84LinuxCVE List
- 84f5de696b8c924aeb4bf430a0bdc762fc50e99fLinuxCVE List
- 286d9594a022dd7e0caa3de9daa63b896bc70d43LinuxCVE List
- 6d90f0feb929f6c0f3010f9af4747c7230b75993LinuxCVE List
- 4.15LinuxCVE List
- 4.16LinuxCVE List
A fixed version on one release line is not the upgrade target for every line. Check your exact version and any vendor backports.
Description
In the Linux kernel, the following vulnerability has been resolved:
scsi: qla2xxx: Null out freed pointers in qla2x00_mem_alloc() error path
When qla2x00_mem_alloc() fails, qla2x00_probe_one() jumps to probe_hw_failed and calls qla2x00_mem_free(). Several error labels in qla2x00_mem_alloc() freed adapter members (elsrej.c, purex_dma_pool, flt, sfp_data, loop_id_map, async_pd, sf_init_cb, ex_init_cb, npiv_info) but left the pointers dangling. qla2x00_mem_free() then freed them a second time. Worse, for the dma_pool members it issued dma_pool_free(ha->s_dma_pool, ...) after s_dma_pool had already been destroyed and set to NULL at fail_s_dma_pool, dereferencing a NULL pool.
Clear each freed pointer (and its DMA handle) in the error labels so the subsequent qla2x00_mem_free() skips them.
Text from CVE List
Affected versions 16
- Linuxaffected: d64d6c5671db5e693a0caaee79f2571b098749c9 before 5e0d6ffabbbd86b3fb9168b9dbb62190ecb20d84CVE List
- Linuxaffected: d64d6c5671db5e693a0caaee79f2571b098749c9 before 84f5de696b8c924aeb4bf430a0bdc762fc50e99fCVE List
- Linuxaffected: d64d6c5671db5e693a0caaee79f2571b098749c9 before a57570229edb7a0990d5c8067daeb9ac8858a961CVE List
- Linuxaffected: d64d6c5671db5e693a0caaee79f2571b098749c9 before 286d9594a022dd7e0caa3de9daa63b896bc70d43CVE List
- Linuxaffected: d64d6c5671db5e693a0caaee79f2571b098749c9 before 6d90f0feb929f6c0f3010f9af4747c7230b75993CVE List
- Linuxaffected: 8540351ee8a4d540b1b7ee64b88d5e42c7c0bfbcCVE List
- Linuxaffected: 7142b10b87d5b393a0688358b16a4b1d3680ec7dCVE List
- Linuxaffected: 4.14.27 before 4.15CVE List
- Linuxaffected: 4.15.10 before 4.16CVE List
- Linuxaffected: 4.16CVE List
- Linuxunaffected: all versions before 4.16CVE List
- Linuxunaffected: 6.6.160 through 6.6.*CVE List
- Linuxunaffected: 6.12.112 through 6.12.*CVE List
- Linuxunaffected: 6.18.53 through 6.18.*CVE List
- Linuxunaffected: 7.2.7 through 7.2.*CVE List
- Linuxunaffected: 7.3CVE List
References 5
- git.kernel.org/stable/c/5e0d6ffabbbd86b3fb9168b9dbb62190ecb20d84Referencevia CVE List
- git.kernel.org/stable/c/84f5de696b8c924aeb4bf430a0bdc762fc50e99fReferencevia CVE List
- git.kernel.org/stable/c/a57570229edb7a0990d5c8067daeb9ac8858a961Referencevia CVE List
- git.kernel.org/stable/c/286d9594a022dd7e0caa3de9daa63b896bc70d43Referencevia CVE List
- git.kernel.org/stable/c/6d90f0feb929f6c0f3010f9af4747c7230b75993Referencevia CVE List