트렌딩 목록으로
Python

Sndav / CVE-2026-31431-Advanced-Exploit

CVE-2026-31431 순수 파일 이용

44
13
약 2개월 전
GitHub에서 보기

이 프로젝트에 대해

Sndav 님의 CVE-2026-31431-Advanced-Exploit 프로젝트는 GitHub에서 44개의 별을 받으며 많은 개발자들의 주목을 받고 있습니다. 특히 Python 환경에서 유용하게 활용될 수 있으며, 최근 오픈소스 커뮤니티에서 활발한 기여와 토론이 이루어지고 있는 트렌딩 레포지토리입니다.

Language Breakdown

Python 100%

🇰🇷 한국어 번역 README

캐시 히트

CVE-2026-31431 — 복사 실패

Linux 内核页缓存越权写入漏洞 (AF_ALG AEAD 散列表链错误)

概述

Linux 内核 'algif_aead' 接口존재한 하나의 漏洞,允许无特权用户向任意可读文件的页缓存(page cache)写入任意数据——完全绕过文件权限检查、强制访问控制(MAC)以及完整性校验。

디스크 상的文件내용不会改变,하지만 이 후모든 读取该文件的进程(包括 SUID 程序、动态链接器、'execve()' 等)都会看到攻击者篡改后的版本,直到页缓存被回收。

影响范围

项目说明
子系统'크립토/algif_aead.c'
算法'authencesn(hmac(sha256), cbc(aes))'
内核配置'CONFIG_CRYPTO_USER_API_AEAD=y/m'(거의 모든 주류 发行版默认启用)
所需权限 — 只要对目标文件有读权限即可
危害等级本地提权 → root
受影响发行版Ubuntu, Debian, Fedora, RHEL, Arch, openSUSE 等

漏洞原理

简要说明

通过 'AF_ALG' 执行 AEAD 解密时:

  1. 用户态通过 'sendmsg()' + 'MSG_MORE' 发送关联认证数据(AAD),其中包含攻击者控制的 4 字节 'seqno_lo'.
  2. 通过 'splice()' 将목표文件的页缓存页面注入到内核加密子系统的发送散列表(TX SGL)中.
  3. 内核构建目标散列表(dst SGL)时,将接收缓冲区与页缓存页面通过 'sg_chain' 링크在一起.
  4. 'authencesn' 알고리즘将 'seqno_lo' 写入목표 散列表偏移 'assoclen + cryptlen' 处——该位置越过接收缓冲区,直接落入链接的页缓存页面.
  5. 이 写入发生在 HMAC 校验之前. HMAC 실패后内核返回 'EBADMSG' 错误,但页缓存已被篡改。

数据流图

关键点

  • 'seqno_lo' 的 4 字节完全由攻击者在 AAD 中控制(写什么)
  • 'splice' 의 长度결정了写入在页缓存中的偏移(写哪里)
  • 两者结合 = 对任意可读文件页缓存的任意 4 字节写入原语

使用方法

快速提权

执行过程:

  1. 将 '/etc/passwd' 원본 내용 백업到 '/tmp/.passwd.bak'
  2. 在页缓存中将 'root:x:0:0:root:...' 修改为 'root::0:0:root :...'
  3. 자동 调用 'su root'(无需密码)

输出示例:

通用:任意页缓存写入

使用示例

约束条件

约束说明
读权限목표문서必须对当前用户可读('O_RDONLY')
对齐每次写入 4 字节;不足 4 字节的尾部用 0x90 填充
文件大小文件大小必须 ≥ 偏移量 + 数据长度 + 4 字节
仅页缓存磁盘上的文件内容不会被修改
持久性页缓存被回收或手动清除前一直有效

🌐 본 텍스트는 빠른 이해를 돕기 위한 요약 번역본입니다. 정확한 기술 정보 및 전체 코드는 GitHub 원문에서 확인하실 수 있습니다.

이 정보는 AI가 자동으로 분석한 결과입니다. 정확한 내용은 원문을 확인하세요.

Sndav/CVE-2026-31431-Advanced-Exploit GitHub 원문 바로가기 →