Към съдържанието

CVE-2022-49093: Linux, грешка в паметта

9.8

CVSS 3.1

Няма данни

Вероятност да бъде експлоатирана в следващите 30 дни (EPSS)

Няма потвърждение

Атакува се

Няма данни

Време до експлоатация

Атакува се по мрежата, без особени условия, без вход и без действие от потребителя.

CVE радар: още уязвимости от този вид

  • Експлоатация: няма данни за експлоатация
  • Атаката не може да се автоматизира

Описание

Оригинално описание

In the Linux kernel, the following vulnerability has been resolved: skbuff: fix coalescing for page_pool fragment recycling Fix a use-after-free when using page_pool with page fragments. We encountered this problem during normal RX in the hns3 driver: (1) Initially we have three descriptors in the RX queue. The first one allocates PAGE1 through page_pool, and the other two allocate one half of PAGE2 each. Page references look like this: RX_BD1 _______ PAGE1 RX_BD2 _______ PAGE2 RX_BD3 _________/ (2) Handle RX on the first descriptor. Allocate SKB1, eventually added to the receive queue by tcp_queue_rcv(). (3) Handle RX on the second descriptor. Allocate SKB2 and pass it to netif_receive_skb(): netif_receive_skb(SKB2) ip_rcv(SKB2) SKB3 = skb_clone(SKB2) SKB2 and SKB3 share a reference to PAGE2 through skb_shinfo()->dataref. The other ref to PAGE2 is still held by RX_BD3: SKB2 ---+- PAGE2 SKB3 __/ / RX_BD3 _________/ (3b) Now while handling TCP, coalesce SKB3 with SKB1: tcp_v4_rcv(SKB3) tcp_try_coalesce(to=SKB1, from=SKB3) // succeeds kfree_skb_partial(SKB3) skb_release_data(SKB3) // drops one dataref SKB1 _____ PAGE1 \____ SKB2 _____ PAGE2 / RX_BD3 _________/ In skb_try_coalesce(), __skb_frag_ref() takes a page reference to PAGE2, where it should instead have increased the page_pool frag reference, pp_frag_count. Without coalescing, when releasing both SKB2 and SKB3, a single reference to PAGE2 would be dropped. Now when releasing SKB1 and SKB2, two references to PAGE2 will be dropped, resulting in underflow. (3c) Drop SKB2: af_packet_rcv(SKB2) consume_skb(SKB2) skb_release_data(SKB2

Засегнати продукти

  • Linux Linux: 53e0961da1c7bbdabd1abebb20de403ec237ec09 преди ba965e8605aee5387cecaa28fcf7ee9f61779a49; 53e0961da1c7bbdabd1abebb20de403ec237ec09 преди c4fa19615806a9a7e518c295b39175aa47a685ac; 53e0961da1c7bbdabd1abebb20de403ec237ec09 преди 72bb856d16e883437023ff2ff77d0c498018728a; 53e0961da1c7bbdabd1abebb20de403ec237ec09 преди 1effe8ca4e34c34cdd9318436a4232dcb582ebf4
  • Linux Linux: 5.15; преди 5.15; 5.15.34 до 5.15.*; 5.16.20 до 5.16.*; 5.17.3 до 5.17.*; от 5.18 нататък

Вид слабост

История

  • 26 февруари 2025 Публикувано

Други уязвимости в Linux Linux

Първоизточници

CVE-2022-49093: Linux, грешка в паметта | freedomonline.bg