🇰🇷 한글 설명
elixir-grpc의 erlpack 코덱에서 신뢰할 수 없는 데이터를 역직렬화할 때 발생하는 취약점입니다. 공격자가 조작된 페이로드를 전송하면 BEAM 노드의 원자(atom) 테이블을 고갈시켜 시스템을 중단시키거나, 원격 코드 실행(RCE)을 달성할 수 있습니다.
💡 쉬운 설명
해커가 특수하게 조작된 데이터를 보내 서버의 메모리 자원을 모두 써버리게 만들어 서버를 멈추게 하거나, 서버를 마음대로 조종할 수 있는 위험한 결함입니다.
🇺🇸 원문 (English)
Deserialization of Untrusted Data and Allocation of Resources Without Limits or Throttling vulnerabilities in elixir-grpc grpc allow unauthenticated attackers to crash the BEAM node via atom table exhaustion and, when a decoded term flows into a call site that invokes it, achieve remote code execution on the server.
'Elixir.GRPC.Codec.Erlpack':decode/2 (lib/grpc/codec/erlpack.ex) calls :erlang.binary_to_term/1 on the raw gRPC message body without the :safe option, no size bound, and no type guard. Any unauthenticated peer that sends a request with Content-Type: application/grpc+erlpack can send a crafted payload that mints arbitrary new atoms (which are never garbage-collected, exhausting the bounded atom table and crashing the VM) or that encodes a fun term which, if applied anywhere downstream, executes attacker-controlled code inside the server process.
This issue affects grpc: from 0.4.0 before 1.0.0.
📍 영향받는 시스템
grpc: 0.4.0 ~ 1.0.0 미만 버전
⚔️ 공격 벡터
Content-Type: application/grpc+erlpack 헤더를 포함한 조작된 gRPC 메시지 전송
🛡️ 대응 방법
grpc 라이브러리를 1.0.0 이상의 안전한 버전으로 업데이트하십시오.
🔧 검증 코드
출력된 grpc 라이브러리의 버전이 1.0.0 미만인지 확인하십시오.
mix list | grep -E 'grpc'
💻 영향받는 소프트웨어
IBM WebSphere Application Server