Description
In the Linux kernel, the following vulnerability has been resolved: cxgb4/ch_ktls: disable softirqs around tid_list erases chcr_ktls_cpl_act_open_rpl() inserts into tid_list from the receive path using xa_insert_bh(). The array is shared by the adapter's connections and initialized with XA_FLAGS_LOCK_BH. However, chcr_ktls_dev_del() and the chcr_ktls_dev_add() error path use xa_erase(), which takes the XArray lock without disabling softirqs. When cleanup runs with softirqs enabled, a receive softirq for another connection on the same CPU can interrupt the erase and spin on the lock held by the interrupted task. Use xa_erase_bh() at both sites to match the insertion path.
Affected products
Version statuses are supplied by the assigning organization. Consult the original record for detailed ranges and platform conditions.
Linux Linux
Default version status: unaffected
65e302a9bd57b62872040d57eea1201562a7cbb2 to < 8739f06e3f82cd715f7dd10ab24029ed881efc90affected65e302a9bd57b62872040d57eea1201562a7cbb2 to < bcf97573d44e277b1744d7f1226f665aa0ccc599affected65e302a9bd57b62872040d57eea1201562a7cbb2 to < 7110c7f70c59eb7924e79853bcc00e2a026662e6affected65e302a9bd57b62872040d57eea1201562a7cbb2 to < bea736a2b8c6da5b1078badf1206541b5404250faffected65e302a9bd57b62872040d57eea1201562a7cbb2 to < 4c9dc0faca98084922caeb689579d338cf3e1c29affectedb96adbf6601d76ee0bdd9bfa5bcdd0cdd5333d78affected70c4ead897211b184f36cbeda213f2a3e8153218affected5.10.42 to < 5.11affected5.12.9 to < 5.13affected
Linux Linux
Default version status: affected
5.13affected0 to < 5.13unaffected6.6.160 to ≤ 6.6.*unaffected6.12.113 to ≤ 6.12.*unaffected6.18.57 to ≤ 6.18.*unaffected7.2.11 to ≤ 7.2.*unaffected7.3 to ≤ *unaffected
References
- https://git.kernel.org/stable/c/8739f06e3f82cd715f7dd10ab24029ed881efc90 ↗
- https://git.kernel.org/stable/c/bcf97573d44e277b1744d7f1226f665aa0ccc599 ↗
- https://git.kernel.org/stable/c/7110c7f70c59eb7924e79853bcc00e2a026662e6 ↗
- https://git.kernel.org/stable/c/bea736a2b8c6da5b1078badf1206541b5404250f ↗
- https://git.kernel.org/stable/c/4c9dc0faca98084922caeb689579d338cf3e1c29 ↗