Heartbleed — reading memory the protocol never meant to send
Heartbleed (CVE-2014-0160) let an attacker read chunks of OpenSSL server memory via a missing bounds check, leaking keys and sessions — a one-line bug in the code that secures most of the web.
Not yet scoped.
Why
The PoC dissects the missing length check and why memory-safety and mandatory bounds checks would have prevented it, connecting to the case for memory-safe languages.
How it works
Not yet built.
Where it lands in Jayverse
Devnet/Wallet: audit every length-prefixed parsing path for a bounds check. Review RPC clients, the bridge relayer, and any custom binary decoding for an explicit bounds check on attacker-controlled length fields; Heartbleed's entire bug was one missing check.
CI: flag unsafe/C-dependency additions for this exact risk class. Add a CI checklist item so any new C/C++ or unsafe dependency introduced into the otherwise TypeScript/Solidity stack gets reviewed for missing-bounds-check risk before it's pinned as a submodule.
Key expressions
Words and phrases from this page worth keeping, with the Korean meaning and the sentence they come from.
Expression
뜻 · 쓰이는 자리
a missing bounds check
범위(경계) 검사 누락 · 입력 길이를 검증하지 않아 생기는 전형적 보안 결함. "a missing bounds check"
leak (keys and sessions)
(정보가) 새어나가다/유출되다 · 민감한 데이터가 의도치 않게 노출될 때. "leaking keys and sessions"
a one-line bug
단 한 줄짜리 버그 · 아주 작은 코드 결함이 큰 피해로 이어질 때. "a one-line bug in the code"
secure most of the web
웹 대부분을 (암호적으로) 지키다 · 광범위하게 쓰이는 보안 인프라의 중요성을 말할 때. "the code that secures most of the web"
would have prevented it
(그랬더라면) 막을 수 있었을 것이다 · 가정법으로 사후에 원인을 짚을 때. "would have prevented it"
CVE
공통 취약점 및 노출 식별자(Common Vulnerabilities and Exposures) · 보안 취약점에 부여되는 표준 식별 번호. "Heartbleed (CVE-2014-0160) let an attacker read chunks"
OpenSSL
오픈소스 TLS/SSL 암호 통신 라이브러리 · 하트블리드 취약점이 발생한 서버 암호화 라이브러리. "chunks of OpenSSL server memory"
하트블리드(CVE-2014-0160)는 경계 검사 누락을 통해 공격자가 OpenSSL 서버 메모리 조각을 읽어 키와 세션을 유출하게 했습니다 — 웹 대부분을 보호하는 코드의 한 줄 버그입니다.
아직 범위 미정.
왜
이 PoC는 빠진 길이 검사와 메모리 안전성·필수 경계 검사가 이를 막았을 이유를 해부하여, 메모리 안전 언어에 대한 논거로 연결합니다.
동작 방식
아직 만들지 않음.
Jayverse에서의 위치
Devnet/Wallet: 길이 접두 파싱 경로마다 경계 검사를 점검한다. RPC 클라이언트, 브리지 릴레이어, 그 외 커스텀 바이너리 디코딩에서 공격자가 제어하는 길이 필드에 명시적 경계 검사가 있는지 확인한다. Heartbleed 버그 전체가 이 검사 하나의 누락이었다.
CI: 이 위험 클래스에 대해 unsafe/C 의존성 추가를 표시한다. TypeScript/Solidity 중심 스택에 새로운 C/C++이나 unsafe 의존성이 들어올 때마다, 서브모듈로 고정되기 전에 경계 검사 누락 위험을 리뷰하는 CI 체크리스트 항목을 추가한다.
핵심 표현
이 페이지의 영어 본문에서 배울 만한 단어와 표현, 뜻과 나온 자리.
Expression
뜻 · 쓰이는 자리
a missing bounds check
범위(경계) 검사 누락 · 입력 길이를 검증하지 않아 생기는 전형적 보안 결함. "a missing bounds check"
leak (keys and sessions)
(정보가) 새어나가다/유출되다 · 민감한 데이터가 의도치 않게 노출될 때. "leaking keys and sessions"
a one-line bug
단 한 줄짜리 버그 · 아주 작은 코드 결함이 큰 피해로 이어질 때. "a one-line bug in the code"
secure most of the web
웹 대부분을 (암호적으로) 지키다 · 광범위하게 쓰이는 보안 인프라의 중요성을 말할 때. "the code that secures most of the web"
would have prevented it
(그랬더라면) 막을 수 있었을 것이다 · 가정법으로 사후에 원인을 짚을 때. "would have prevented it"
CVE
공통 취약점 및 노출 식별자(Common Vulnerabilities and Exposures) · 보안 취약점에 부여되는 표준 식별 번호. "Heartbleed (CVE-2014-0160) let an attacker read chunks"
OpenSSL
오픈소스 TLS/SSL 암호 통신 라이브러리 · 하트블리드 취약점이 발생한 서버 암호화 라이브러리. "chunks of OpenSSL server memory"