4P by GN⁺ 10일전 | ★ favorite | 댓글 1개
  • GnuPG와 관련된 여러 보안 취약점을 공개한 웹사이트로, 각 취약점의 세부 설명 페이지를 연결
  • 사이트에는 PGP 서명, 암호화, 신뢰 검증 과정에서 발생하는 다양한 문제 사례가 나열됨
  • 주요 항목에는 평문 공격, 경로 탐색, 해시 계산 오류, 메모리 손상, 위조 서명 등이 포함됨
  • 운영자는 사이트를 급히 다시 작성 중이며, 슬라이드·PoC·패치를 곧 공개할 예정임을 언급
  • 오픈소스 보안 도구의 서명 무결성과 신뢰 체계에 대한 심각한 검증 필요성을 드러내는 사례

사이트 개요

  • gpg.fail은 GnuPG(OpenPGP 구현체) 의 취약점을 모아 공개하는 사이트로 구성
    • 각 항목은 별도의 링크로 세부 기술 분석 페이지로 연결
    • 운영자는 “사이트 소스코드를 집에 두고 와 다시 작성 중이며, 내일 더 나은 버전을 기대하라”고 언급
  • 사이트 상단에는 “Slides, pocs and patches soon!” 이라는 문구로 향후 자료 공개를 예고

공개된 주요 취약점 목록

  • Multiple Plaintext Attack on Detached PGP Signatures
    • 분리된 PGP 서명에서 다중 평문 공격이 가능함을 지적
  • GnuPG Accepts Path Separators and Path Traversals in Literal Data "Filename" Field
    • GnuPG가 리터럴 데이터의 파일명 필드에서 경로 구분자와 경로 탐색을 허용
  • Cleartext Signature Plaintext Truncated for Hash Calculation
    • 해시 계산 시 평문이 잘려나가는 문제 발생
  • Encrypted message malleability checks are incorrectly enforced causing plaintext recovery attacks
    • 암호문 가변성 검증이 부정확하게 수행되어 평문 복구 공격이 가능함
  • Memory Corruption in ASCII-Armor Parsing
    • ASCII-Armor 파싱 중 메모리 손상 발생 가능성
  • Trusted comment injection (minisign)
    • minisign에서 신뢰된 주석(trusted comment) 주입 가능성
  • Cleartext Signature Forgery in the NotDashEscaped header implementation in GnuPG
    • NotDashEscaped 헤더 구현에서 평문 서명 위조 가능성
  • OpenPGP Cleartext Signature Framework Susceptible to Format Confusion
    • 서명 포맷 혼동(format confusion) 에 취약
  • GnuPG Output Fails To Distinguish Signature Verification Success From Message Content
    • 서명 검증 성공 여부와 메시지 내용을 구분하지 못하는 출력 문제
  • Cleartext Signature Forgery in GnuPG
    • NULL 바이트 처리 오류로 인한 평문 서명 위조 가능성
  • Radix64 Line-Truncation Enabling Polyglot Attacks
    • Radix64 줄 절단으로 다형(polyglot) 공격 가능성
  • GnuPG may downgrade digest algorithm to SHA1 during key signature checking
    • 키 서명 검증 중 해시 알고리듬이 SHA1으로 강등될 수 있음
  • GnuPG Trust Packet Parsing Enables Adding Arbitrary Subkeys
    • 신뢰 패킷 파싱 과정에서 임의의 서브키 추가 가능성
  • Trusted comment Injection (minisign)
    • minisign 관련 신뢰 주석 주입 취약점이 중복 언급됨

향후 계획

  • 운영자는 현재 패치 작업 중이며, 슬라이드와 PoC(개념 증명 코드)를 곧 공개할 예정
  • 사이트는 임시로 재작성된 상태이며, 다음 날 개선된 버전을 예고

의미

  • GnuPG의 서명·암호화·신뢰 검증 체계 전반에 걸친 취약점이 다수 존재함을 보여줌
  • 오픈소스 보안 도구의 기본 신뢰성 검증과 코드 감사 강화 필요성을 강조하는 사례
Hacker News 의견들
  • 최근 GnuPG의 취약점 발표 이후 신뢰가 흔들리고 있음. CCC 발표 영상에서 제로데이들이 공개되었고, 일부는 “wontfix”로 표시되어 실망스러움
    • “Werner Koch에 대한 신뢰가 사라졌다”는 말이 있었는데, 그 이유를 묻는 사람도 있었음
    • 어떤 이는 GPG가 이미 수십 년 전부터 잃어버린 원인(lost cause) 이라고 표현하며, 진지한 보안 사용자들은 이미 더 나은 대체 도구로 이동했다고 말함
  • GnuPG 블로그 글이 올라왔지만, 30년 동안 “유해하다고 여겨진” 기능을 여전히 유지하는 건 납득하기 어렵다는 반응이 있었음
    • 한 사용자는 Werner Koch가 오랜 시간 GPG에 헌신했지만, 이제는 근본적으로 고칠 수 없는 구조적 결함이 드러났다고 안타까움을 표함
  • GPG 관련 취약점 중 일부는 “ANSI escape code가 포함된 신뢰할 수 없는 텍스트” 문제로, 마치 터미널 버전의 XSS처럼 느껴진다는 의견이 있었음
  • GPG의 패킷 구조 자체가 지나치게 복잡하다는 분석도 있었음
    • 메시지가 여러 형태의 패킷으로 구성되어 있어, 공격자가 상태 머신을 교란시킬 수 있음
    • 특히 malleability bug는 상태 전이 오류로 인해 인증 검증이 누락되는 문제를 유발함
    • 이런 구조적 복잡성은 “Weird Machine”을 만들어내며, 단순하고 명확한 바이너리 포맷으로 재설계해야 한다는 주장임
    • 이에 대한 설명이 훌륭하다는 반응도 있었음
  • GPG의 표준 준수 여부에 대한 논의도 이어졌음
    • 어떤 이는 “이건 GnuPG만의 문제이며 OpenPGP 표준과는 별개”라고 했지만, 다른 사람은 주요 PGP 구현체들(Sequoia, minisign, age 등)에서도 파서 취약점이 발견되었다고 지적함
    • 또 다른 사용자는 OpenPGP 진영이 LiberePGP(GnuPG)RFC-9580(Sequoia) 로 나뉘어 있고, 각각 최소주의와 최대주의 접근을 취한다고 설명함. 표준 전쟁을 피하고 상호운용성을 유지하는 게 중요하다고 강조함
    • 일부는 clearsig 문제가 OpenPGP 표준 자체의 결함이라고 주장함
    • 다른 이는 GPG의 버그가 결국 PGP 프로토콜의 구조적 문제에서 비롯된 것이라며, 이는 사실상 프로토콜 수준의 버그라고 평가함
  • GPG 서명과 관련해 “git commit/tag 서명에 GPG를 계속 써도 안전한가?”라는 질문이 나왔음
    • 한 사용자는 GPG의 “bitflip 취약점”을 예로 들며, 공격자가 평문을 조작할 수 있는 심각한 문제라고 설명함
    • 또 다른 사람은 단일 키를 여러 애플리케이션에서 공유하는 구조 자체가 위험하다고 지적하며, 각 앱마다 별도의 키를 두는 것이 안전하다고 주장함
    • 다른 의견으로는, 이번 취약점들이 원격 공격 수준은 아니며, 패닉보다는 신중한 사용이 필요하다고 조언함
    • 한 사용자는 여러 기기에서 GPG와 YubiKey를 쓰다 1Password SSH agent로 전환해 훨씬 단순해졌다고 경험을 공유함
    • 또 다른 이는 GPG를 완전히 대체하려면 키 배포 문제를 해결해야 한다고 강조함. 서명 자체보다 공개키를 신뢰성 있게 배포하는 방법이 더 어렵다는 점을 지적함
  • Rust 생태계에서 MIT 라이선스를 무심코 사용하는 경향에 대한 우려도 제기됨
    • 한 사용자는 “MIT가 기본값이라서” 사용하는 경우가 많다고 하며, GPL3의 카피레프트 보호가 사라지면 사용자 통제권이 약화될 수 있다고 경고함
    • 이에 동의한 사람은 예전엔 MIT를 썼지만, 지금은 모든 프로젝트를 풀 카피레프트로 전환 중이라고 말함
    • 또 다른 사람은 이런 현상이 Rust뿐 아니라 대부분의 현대 언어 생태계에서 나타난다고 분석함
      • 대기업들이 자원봉사 코드 위에 제국을 세우는 현실 때문에 카피레프트의 가치를 다시 보게 되었음
      • 하지만 법적 제약으로 GPL을 쓸 수 없는 환경에서는 실용적 이유로 허용적 라이선스를 택할 수밖에 없다고 함
      • Mozilla Public License 같은 약한 카피레프트가 중간 지점이 될 수 있었지만, FSF가 이를 충분히 밀지 않았다고 아쉬워함
    • 어떤 이는 “비인간(LLM)이 코드를 학습하는 시대에는 인간 중심의 새로운 라이선스가 필요하다”고 주장함
    • 또 다른 사람은 “GPL이든 MIT든 결국 사용 제어도 하나의 기능(feature) 일 뿐”이라며, 자유 소프트웨어의 통제 논리를 기능적 관점에서 바라봄
    • 한 사용자는 “결국 소프트웨어가 오래 살아남으려면 버그를 고치는 것이 먼저”라고 현실적인 의견을 남김
  • GPG를 여전히 유용하게 쓰는 사람도 있었음
    • OpenPGP 스마트카드나 YubiKey와 함께 쓰면 꽤 안정적이며, 다른 하드웨어 솔루션보다 설정이 쉬움
    • 이메일보다는 암호화 백업, 비밀번호 관리자, SSH 키 관리 등에서 계속 사용할 계획임