Lobsters

CVE-2026-107891: musl libc: multiple integer overflow in regcomp, possibly leading to incorrect allocation sizes and out-of-bounds heap writes

CVE-2026-107891: musl libc regcomp의 정수 오버플로, 힙 범위 밖 쓰기로 이어질 가능성

musl libc의 regcomp에서 정수 오버플로가 발생해 잘못된 크기로 메모리를 할당하고 힙 범위 밖에 쓸 수 있습니다. 신뢰할 수 없는 정규식을 처리하는 애플리케이션이 영향을 받으며, 최소한 예측 가능한 충돌이 가능하고 조건에 따라 임의 코드 실행으로 이어질 수도 있습니다.

에디터 노트

취약점의 적용 범위는 모든 musl 사용 애플리케이션이 아니라 신뢰할 수 없는 정규식을 regcomp으로 컴파일하는 경우입니다. 매칭 데이터가 아니라 정규식의 크기와 복잡도가 오버플로 조건을 만든다는 점이 대응 범위를 가릅니다. 공지는 충돌을 최소 영향으로 제시하고 코드 실행 가능성에는 힙 사용 방식과 동시 실행 조건을 붙였습니다. 댓글은 libc에 POSIX 정규식 기능이 있다는 사실과 BRE, ERE를 이야기할 뿐 취약점의 재현 조건이나 영향에 대한 반론은 제시하지 않습니다.

AI 요약

musl libc의 정규식 컴파일 함수 regcomp에 여러 정수 오버플로 문제가 있습니다. 오버플로 조건은 매칭할 데이터가 아니라 regcomp에 전달하는 정규식의 크기와 복잡도에 따라 발생합니다. 따라서 신뢰할 수 없는 출처의 정규식을 libc regcomp으로 처리하는 애플리케이션이 취약합니다.

영향과 대응

최소한 예측 가능한 충돌로 서비스 거부가 발생할 수 있습니다. 힙 객체의 사용 방식과 동시 실행 여부에 따라 임의 코드 실행도 가능하다고 공지했습니다. 취약 코드는 musl 0.5.0부터 들어갔으며 1.2.6까지의 모든 버전이 영향을 받습니다. 첨부 패치를 적용하거나, 출시 예정인 1.2.7로 업그레이드해야 합니다. 패치를 적용할 수 없다면 신뢰할 수 없는 정규식을 처리하지 않도록 조치해야 합니다.

첫 번째 문제는 Julien Voisin이 비공개로 제보했습니다. 이후 Szabolcs Nagy와 Rich Felker가 분석해 유사한 오버플로 패턴을 추가로 발견했습니다.

Lobsters 반응

  • @andrewrk — 오늘 libc에도 정규식 기능이 있다는 걸 알았습니다.
    • @fanf — POSIX에는 정규식의 두 가지 음악 장르, 컨트리와 웨스턴처럼 BRE와 ERE가 있습니다.
    • @koreth — libc 또는 적어도 일부 libc 구현에는 1980년대부터 들어 있었던 것 같습니다. libc에는 늘 뜻밖의 기능이 있지만, 이번처럼 좋은 뜻밖의 일은 대개 아닙니다.
    • @tomjakubowski — 정규식은 POSIX 호환 ISO libc의 POSIX 부분에 들어 있습니다.
  • @dzwdz — IRC에서 이 내용을 언급해 준 @cadey에게 감사합니다. 링크된 패치의 커밋 메시지에 더 자세한 내용이 있습니다.

원문: Openwall oss-security / 번역·요약: Trawling