DEEP DIVE REPORT

CVE-2026-112021: snac2 2.93 미만 JSON 파서 힙 버퍼 오버플로우 점검 가이드

SecurityDesk
• 2026.10.19 • 조회 1

snac2의 JSON 파서에 인증 없이 악용 가능한 힙 버퍼 오버플로우가 CVE-2026-112021로 공개됐다. 서명 검증 전에 요청이 파싱되는 구조적 문제로, snac2 2.93 미만으로 운영되는 인스턴스는 영향 범위에 해당해 서비스 거부 위험이 있다. 이 글은 확인된 근거를 바탕으로 점검 범위와 대응 순서를 정리한다.

개요

개요 인포그래픽
- snac2(경량 ActivityPub 서버) 2.93 미만 버전의 JSON 파서 _xs_json_load_lexer()에 힙 버퍼 오버플로우(CWE-122)가 존재한다.
- 공개된 CVE 정보는 CVSS 8.7을 기록했으며, 영향 버전은 2.93 미만으로 표기되어 있다.
- 인증 없는 원격 공격자가 조작된 JSON 문자열을 보내 힙 메모리를 손상시켜 서버 크래시(서비스 거부)를 유발할 수 있다.
- 퍼징 연구자가 실제 로컬 snac2 서버에서 즉시 크래시를 재현한 사례와 공개 PoC가 확인된다.

적용 환경·전제조건

점검 대상이 되는 인스턴스는 다음 조건에 해당한다.

  • 버전: snac2 2.93 미만(공개 자료상 snac2 전체 이력이 영향 범위로 표기됨). 공식 배포 채널의 정확한 패키지·커밋 번호나 배포 일정은 제시된 근거에 포함되지 않아, 해당 인스턴스가 어떤 버전으로 배포되었는지 운영자가 자체 확인해야 한다.
  • 노출: JSON 요청을 _xs_json_load_lexer()로 파싱하는 ActivityPub/MastoAPI 엔드포인트가 외부에 노출되어 있는 것.
  • 공격자 전제조건: 인증이나 ActivityPub 서명이 유효할 필요가 없다. 서명 검증보다 먼저 파싱이 일어나기 때문에, 인증·서명 체계가 정상으로 운영되어 있어도 이 취약점에는 방어되지 않는다.

즉 "우리가 서명을 검증하니 안전할 것"이라는 전제는 이 취약점에는 적용되지 않는다. 먼저 버전을 확인하는 것이 출발점이다.

기술 절차·판단 근거

공격 메커니즘은 단순하다. 공격자는 application/activity+json 타입의 조작된 POST 요청을 단 한 건, activitypub_post_handler()로 전송한다. 이 요청이 서명 검증 이전에 JSON 파싱 단계에서 처리된다는 점이 결정적이다. CVE 목록에 공개된 설명에 따르면 조작된 JSON은 힙 할당을 초과해 기록하고 서버를 크래시시킨다.

연구자는 이 페이로드를 실제 로컬 snac2 인스턴스의 MastoAPI 엔드포인트로 전송해 즉시 크래시를 재현했다고 공개했다(nullenvk 연구 블로그). 공개된 PoC 코드에는 tcache poisoning 공격 시도를 포함하는 코드가 포함되어 있어, 단순 서비스 거부를 넘어 힙 익스플로잇이 가능할지 여부도 논의된다. 다만 코드 실행(RCE) 달성까지 입증된 것은 아니며, tcache poisoning 시도가 페이로드에 존재한다는 사실 이상으로 확인된 내용은 없다. VulnCheck 고지문은 영향 범위(2.93 미만)와 CVSS 8.7, CWE-122를 정리한다.

판단 근거를 정리하면, 이 취약점이 중요한 이유는 세 가지다. 인증 불필요, 단일 요청으로 트리거 가능, 그리고 서명 검증보다 앞선 파싱 시점. 특히 파싱이 서명 검증보다 먼저 수행되는 한, 서명 검증만으로는 이 공격 경로를 차단하지 못한다.

운영상 영향

영향은 운영 중인 인스턴스의 가용성에 직접적이다.

  • 인증 없는 원격 공격자 한 명의 요청으로 프로세스 힙 메모리가 손상되고 서버가 크래시하며, 서비스 중단으로 이어진다.
  • 페이로드에 힙 익스플로잇(tcache poisoning) 시도가 포함되어 있어, 환경에 따라 서비스 거부를 넘는 영향 가능성이 배제되지 않는다. 다만 달성 여부는 확인된 근거에서 입증되지 않았다.
  • 인증·서명 체계가 정상 작동해도 방어되지 않으므로, 서명 검증 단계가 공격 도달보다 뒤에 놓인다는 점을 운영 판단의 출발점으로 삼아야 한다.

긴급도 판단을 위해 참고할 만한 실제 악용 사례나 CISA KEV 등재 여부는 확인된 근거에 없어, 현재 공개된 정보만으로는 긴급도를 높일 추가 근거가 없다. 운영 우선순위는 "2.93 미만으로 운영 중인지" 사실로 판단하면 된다.

탐지·대응

먼저 탐지 한계를 짚자. 이 취약점 전용의 시그니처나 벤더 권장 로그 지표는 확인된 근거에 제시되어 있지 않다. 즉, 현재 공개된 근거만으로 이 공격을 직접 식별하는 탐지 규칙이나 구체적인 로그 패턴을 제시할 수는 없으며, 확인된 내용은 단일 조작 POST로 인한 즉시 크래시라는 공격 경로 수준에 한정된다.

대응은 제공된 근거가 확인하는 범위, 곧 snac2 2.93 미만이 영향 대상이라는 점으로 한정할 수 있다. 따라서 운영 중인 인스턴스의 버전을 확인해 이 범위에 해당하는지부터 파악하는 것이 먼저다. 제공된 근거에는 2.93에 수정이 반영되었는지, 배포 상태, 유지관리자의 업그레이드 권고 여부가 포함되어 있지 않다. 아래 완화 수단은 모두 확인된 공격 경로에 조건부로 부합하는 운영 판단으로 제시한다.

  • 버전 확인: 운영 중인 snac2 버전을 확인해 2.93 미만이면 영향 대상에 해당한다고 식별한다.
  • 노출 축소: 영향 범위에 해당하면, 확인된 공격 경로(단일 ActivityPub/MastoAPI POST)로 접근할 수 있는 엔드포인트의 공개 노출을 줄이는 것을 조건부 완화책으로 검토할 수 있다.
  • 크래시 감시: 확인된 공격 경로가 단일 조작 POST로 인한 즉시 크래시인 만큼, 프로세스 비정상 종료·재시작 이력을 감시해 크래시 발생 여부를 파악할 수 있다.

한계 및 참고자료

확인된 근거에서 입증되지 않아 단정하지 않는 항목을 명확히 한다.

  • 실제 악용 사례와 CISA KEV 등재 여부는 확인되지 않았다.
  • 코드 실행(RCE) 달성 여부는 페이로드에 tcache poisoning 시도가 포함됐다는 사실 이상으로 입증되지 않았다.
  • 공식 배포 채널의 정확한 패키지·커밋 번호와 배포 일정은 근거에 포함되지 않았다.
  • 제공된 근거는 영향 범위(2.93 미만)만 명시하며, 2.93에 수정이 반영되었는지, 배포 상태, 유지관리자의 업그레이드 권고 여부는 확인되지 않았다.
  • 전용 탐지 시그니처와 벤더 권장 로그 지표는 확인되지 않았다.

참고자료

함께 읽으면 좋은 글

본 콘텐츠는 AI 기술로 작성된 분석 리포트를 포함하고 있습니다. 내용 중 사실과 다르거나 보완이 필요한 정보를 발견하셨으면 댓글을 통해 의견을 부탁드립니다. 여러분의 피드백은 더 정확한 보안 정보 공유에 큰 도움이 됩니다.

댓글 (0)

댓글을 작성하려면 로그인이 필요합니다.

로그인

아직 댓글이 없습니다.

첫 번째 댓글을 작성해보세요!

IT 도구 서랍

→ Unix: 2025-01-15T09:30:00
→ 날짜: 1736934600

→ ASCII: ABC
→ 문자: 65 66 67

ASCII 코드표 — 클릭하면 입력란에 추가

DecHex약어설명
DecHex문자
DecHex문자

→ 유니코드: 홍길동
→ 문자: \ud64d\uae38\ub3d9