Description (CNA)
In the Linux kernel, the following vulnerability has been resolved: batman-adv: tvlv: reject oversized TVLV packets batadv_tvlv_container_ogm_append() builds a TVLV packet section from the tvlv.container_list. The total size of this section is computed by batadv_tvlv_container_list_size(), which sums the sizes of all registered containers. The return type and accumulator in batadv_tvlv_container_list_size() were u16. If the accumulated size exceeds U16_MAX, the value wraps around, causing the subsequent allocation in batadv_tvlv_container_ogm_append() to be undersized. The memcpy-style copy that follows would then write beyond the end of the allocated buffer, corrupting kernel memory. Fix this by widening the return type of batadv_tvlv_container_list_size() to size_t. In batadv_tvlv_container_ogm_append(), check the computed length against U16_MAX before proceeding, and bail out as if the allocation had failed when the limit is exceeded.
Affected (CNA)
| Vendor / product | Versions |
|---|---|
| Linux / Linux | affected ef26157747d42254453f6b3ac2bd8bd3c53339c3 before c02aa6c0c9d1bea9bb75dea362b75ad225137bae; affected ef26157747d42254453f6b3ac2bd8bd3c53339c3 before 1595628a2f877d052eda18865ccf539392c47c04; affected ef26157747d42254453f6b3ac2bd8bd3c53339c3 before 6448a49344e87487b61bd88cb850cd694a0f576d; affected ef26157747d42254453f6b3ac2bd8bd3c53339c3 before 13493b00dd1e05a705981e052158652ea23eb482; affected ef26157747d42254453f6b3ac2bd8bd3c53339c3 before 94db72e9dac202e017ee3db22c59d17e4f3bf171; affected ef26157747d42254453f6b3ac2bd8bd3c53339c3 before ede47988ac5687793745b17c1634a496a2299919; affected ef26157747d42254453f6b3ac2bd8bd3c53339c3 before 94a3d72cd9b21116d7c6d5bdc57c11401fc28557; affected ef26157747d42254453f6b3ac2bd8bd3c53339c3 before f50487e3566358b2b982b7801945e858c78ad9ab |
| Linux / Linux | affected 3.13; unaffected 0 before 3.13; unaffected 5.10.259 through 5.10.*; unaffected 5.15.210 through 5.15.*; unaffected 6.1.176 through 6.1.*; unaffected 6.6.143 through 6.6.*; unaffected 6.12.93 through 6.12.*; unaffected 6.18.34 through 6.18.*; unaffected 7.0.11 through 7.0.*; unaffected 7.1 through * |
CWE
No CWE identifiers supplied.
References
- https://git.kernel.org/stable/c/c02aa6c0c9d1bea9bb75dea362b75ad225137bae
- https://git.kernel.org/stable/c/1595628a2f877d052eda18865ccf539392c47c04
- https://git.kernel.org/stable/c/6448a49344e87487b61bd88cb850cd694a0f576d
- https://git.kernel.org/stable/c/13493b00dd1e05a705981e052158652ea23eb482
- https://git.kernel.org/stable/c/94db72e9dac202e017ee3db22c59d17e4f3bf171
- https://git.kernel.org/stable/c/ede47988ac5687793745b17c1634a496a2299919
- https://git.kernel.org/stable/c/94a3d72cd9b21116d7c6d5bdc57c11401fc28557
- https://git.kernel.org/stable/c/f50487e3566358b2b982b7801945e858c78ad9ab