Linux kernel是美国Linux基金会发布的操作系统Linux所使用的内核。NFSv4 implementation是其中的一个分布式文件系统协议。 Linux Kernel在实现SCTP协议时所使用的net/sctp/socket.c在继续SCTP-AUTH API函数之前没有验证是否启用了SCTP-AUTH扩展,这允许攻击者通过调用sctp_setsockopt_auth_chunk、sctp_setsockopt_hmac_ident、sctp_setsockopt_auth_key、sctp_setsockopt_active_key、sctp_setsockopt_del_key、sctp_getsockopt_maxburst、sctp_getsockopt_active_key、sctp_getsockopt_peer_auth_chunks或sctp_getsockopt_local_auth_chunks等方式触发空指针引用,导致拒绝服务。 如果启用了SCTP-AUTH扩展的话,net/sctp/socket.c文件中的sctp_getsockopt_hmac_ident函数依赖于不可信任的长度值限制从内核内存所拷贝的数据,net/sctp/auth.c文件中的sctp_auth_ep_set_hmacs函数没有验证标识符索引处于SCTP_AUTH_HMAC_ID_MAX所创建的范围之内,这允许本地攻击者通过特制的SCTP_HMAC_IDENT IOCTL请求获取敏感信息。
Linux kernel是美国Linux基金会发布的操作系统Linux所使用的内核。NFSv4 implementation是其中的一个分布式文件系统协议。 Linux Kernel在实现SCTP协议时所使用的net/sctp/socket.c在继续SCTP-AUTH API函数之前没有验证是否启用了SCTP-AUTH扩展,这允许攻击者通过调用sctp_setsockopt_auth_chunk、sctp_setsockopt_hmac_ident、sctp_setsockopt_auth_key、sctp_setsockopt_active_key、sctp_setsockopt_del_key、sctp_getsockopt_maxburst、sctp_getsockopt_active_key、sctp_getsockopt_peer_auth_chunks或sctp_getsockopt_local_auth_chunks等方式触发空指针引用,导致拒绝服务。 如果启用了SCTP-AUTH扩展的话,net/sctp/socket.c文件中的sctp_getsockopt_hmac_ident函数依赖于不可信任的长度值限制从内核内存所拷贝的数据,net/sctp/auth.c文件中的sctp_auth_ep_set_hmacs函数没有验证标识符索引处于SCTP_AUTH_HMAC_ID_MAX所创建的范围之内,这允许本地攻击者通过特制的SCTP_HMAC_IDENT IOCTL请求获取敏感信息。