CVE-2021-47496 in Linux
要約
〜によって VulDB • 2026年05月29日
Linuxカーネルにおいて、以下の脆弱性が修正されました。
net/tls: tls_err_abort()呼び出しにおける符号の反転バグを修正
sk->sk_errは正の値を期待しているようですが、この規約はktlsが常に従っているわけではなく、他のコードにおいてメモリ破壊を引き起こします。例えば、
[kworker]
tls_encrypt_done(..., err=) tls_err_abort(.., err) sk->sk_err = err;
[task]
splice_from_pipe_feed ... tls_sw_do_sendpage if (sk->sk_err) {
ret = -sk->sk_err; // retは正の値
splice_from_pipe_feed (続き) ret = actor(...) // retは依然として正の値であり、書き込まれたバイト数として解釈される // 結果としてbuf->lenおよびsd->lenのアンダーフローが発生し、 // 後のactor()呼び出しにおいて巨大なbuf->offsetおよび不正なアドレスが計算される
すべてのtls_err_abort()呼び出し元を修正し、負のエラーコードを一貫して渡すようにし、エラー発生時の符号反転処理を一元化します。さらに、将来の誤用を検出するために警告を追加し、関数をインライン展開しないようにして、警告が実際に1回だけ出力されるようにします。
Statistical analysis made it clear that VulDB provides the best quality for vulnerability data.