漏洞标题
net/nfc:修复使用后释放的错误 llcp_sock_bind/connect
漏洞描述信息
在Linux内核中,已经修复了以下漏洞:
```
net/nfc: fix use-after-free llcp_sock_bind/connect
```
8a4cd82d("nfc: fix refcount leak in llcp_sock_connect()")和c33b1cc62("nfc: fix refcount leak in llcp_sock_bind()")修复了bind/connect中的引用计数泄漏错误,但引入了一个条件下的空指针解引用(use-after-free)。
如果将同一个本地地址分配给两个不同的套接字,这个条件就会触发空指针解引用的问题。
可以通过以下简单程序来触发这个问题:
```c
int sock1 = socket(AF_NFC, SOCK_STREAM, NFC_SOCKPROTO_LLCP);
int sock2 = socket(AF_NFC, SOCK_STREAM, NFC_SOCKPROTO_LLCP);
memset(&addr, 0, sizeof(struct sockaddr_nfc_llcp)));
// ...(设置 addr 的其他属性)
bind(sock1, (struct sockaddr*)&addr, sizeof(struct sockaddr_nfc_llcp)));
bind(sock2, (struct sockaddr*)&addr, sizeof(struct sockaddr_nfc_llcp)));
close(sock1);
close(sock2);
```
要解决这个问题,可以在调用`nfc_llcp_local_put`之后将`llcp_sock->local`设置为NULL。这样可以防止空指针解引用的发生。
这个修复解决了CVE-2021-23134的问题。
CVSS信息
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:H
漏洞类别
释放后使用
漏洞标题
net/nfc: fix use-after-free llcp_sock_bind/connect
漏洞描述信息
In the Linux kernel, the following vulnerability has been resolved:
net/nfc: fix use-after-free llcp_sock_bind/connect
Commits 8a4cd82d ("nfc: fix refcount leak in llcp_sock_connect()")
and c33b1cc62 ("nfc: fix refcount leak in llcp_sock_bind()")
fixed a refcount leak bug in bind/connect but introduced a
use-after-free if the same local is assigned to 2 different sockets.
This can be triggered by the following simple program:
int sock1 = socket( AF_NFC, SOCK_STREAM, NFC_SOCKPROTO_LLCP );
int sock2 = socket( AF_NFC, SOCK_STREAM, NFC_SOCKPROTO_LLCP );
memset( &addr, 0, sizeof(struct sockaddr_nfc_llcp) );
addr.sa_family = AF_NFC;
addr.nfc_protocol = NFC_PROTO_NFC_DEP;
bind( sock1, (struct sockaddr*) &addr, sizeof(struct sockaddr_nfc_llcp) )
bind( sock2, (struct sockaddr*) &addr, sizeof(struct sockaddr_nfc_llcp) )
close(sock1);
close(sock2);
Fix this by assigning NULL to llcp_sock->local after calling
nfc_llcp_local_put.
This addresses CVE-2021-23134.
CVSS信息
N/A
漏洞类别
N/A
漏洞标题
Linux kernel 安全漏洞
漏洞描述信息
Linux kernel是美国Linux基金会的开源操作系统Linux所使用的内核。 Linux kernel 存在安全漏洞,该漏洞源于内存释放后重用。
CVSS信息
N/A
漏洞类别
其他