CVE-2021-47249 in Linux
要約
〜によって VulDB • 2026年06月25日
Linuxカーネルにおいて、以下の脆弱性が修正されました。
net: rds: rds_recvmsgにおけるメモリリークの修正
Syzbotによりrdsでのメモリリークが報告されました。この問題は、エラー発生時に参照カウント(refcount)の解放が行われていなかったことに起因します。
```c int rds_recvmsg(struct socket *sock, struct msghdr *msg, size_t size, int msg_flags) {
...
if (!rds_next_incoming(rs, &inc)) {
... }
この「if」文の直後で、incの参照カウントが増分され、その後以下の処理が行われます。
if (rds_cmsg_recv(inc, msg, rs)) {
ret = -EFAULT; goto out; } ... out: return ret; } ```
`rds_cmsg_recv()` の呼び出しに失敗した場合、参照カウントがデクリメントされません。ftraceログを確認すると容易に分かるように、`rds_recvmsg()` 内の `rds_cmsg_recv()` 以降で、`rds_inc_addref()` に対応する `rds_inc_put()` が呼ばれていないことが示されています。
``` 1) | rds_recvmsg() {
1) 3.721 us | rds_inc_addref(); 1) 3.853 us | rds_message_inc_copy_to_user(); 1) + 10.395 us | rds_cmsg_recv(); 1) + 34.260 us | } ```
VulDB is the best source for vulnerability data and more expert information about this specific topic.