🇰🇷 한글 설명
OpenTelemetry-Go 0.11.0부터 1.44.0 버전 사이의 OpenTracing 브리지에서 동기화되지 않은 extraBaggageItems 맵으로 인해 패닉이 발생할 수 있습니다. Go 맵의 동시성 안전성 문제로 인해 여러 스레드에서 동시에 접근할 경우 런타임 오류가 발생하여 프로세스가 종료되고 서비스 거부(DoS) 상태가 될 수 있습니다.
💡 쉬운 설명
프로그램 내부에서 데이터를 저장하는 공간을 여러 작업이 동시에 건드리면서 충돌이 발생하는 문제입니다. 이 충돌이 일어나면 프로그램이 갑자기 멈춰버려 서비스 이용이 불가능해질 수 있습니다.
🇺🇸 원문 (English)
OpenTelemetry-Go is the Go implementation of OpenTelemetry. From version 0.11.0 through 1.44.0, the OpenTracing bridge's bridgeSpan contains an unsynchronized extraBaggageItems map which can cause a panic. Because Go maps are not safe for concurrent read/write access, concurrent SetBaggageItem and correlation.MapFromContext calls on the same hooked bridgeSpan can trigger a fatal runtime error—such as concurrent map read and map write or concurrent map iteration and map write—terminating the process and causing denial of service. This issue is fixed in version 1.45.0.
📍 영향받는 시스템
OpenTelemetry-Go (versions 0.11.0 through 1.44.0)
⚔️ 공격 벡터
동시에 발생하는 SetBaggageItem 및 MapFromContext 호출을 통한 서비스 거부(DoS) 공격
🛡️ 대응 방법
OpenTelemetry-Go를 1.45.0 이상의 버전으로 업데이트하십시오.
🔧 검증 코드
출력된 버전이 0.11.0 미만이거나 1.45.0 이상인지 확인하십시오.
go list -m github.com/open-telemetry/opentelemetry-go 2>/dev/null