🇰🇷 한글 설명
NCalc 6.1.1 미만 버전에서 팩토리얼 연산자 구현 시 정수 오버플로로 인해 과도한 CPU 사용량이나 무한 루프가 발생할 수 있는 취약점이 발견되었습니다. 신뢰할 수 없는 표현식을 평가하는 애플리케이션에서 매우 큰 팩토리얼 피연산자를 포함한 특수하게 조작된 식을 처리할 때 발생합니다.
💡 쉬운 설명
계산기 프로그램에 너무 큰 숫자의 팩토리얼(계승) 계산을 시키면 컴퓨터가 계산을 끝내지 못하고 계속 돌면서 멈춰버리는 문제입니다. 공격자가 이 기능을 악용하면 서버의 자원을 모두 써버려 서비스를 마비시킬 수 있습니다.
🇺🇸 원문 (English)
NCalc is a fast, lightweight expression evaluator for .NET. Prior to 6.1.1, the factorial operator implementation in src/NCalc.Core/Helpers/MathHelper.cs permits specially crafted expressions with extremely large factorial operands, causing excessive CPU consumption or a non-terminating loop due to integer overflow in the factorial calculation logic when applications evaluate untrusted expressions. This issue is fixed in version 6.1.1.
📍 영향받는 시스템
NCalc 버전 6.1.1 미만
⚔️ 공격 벡터
사용자가 입력한 신뢰할 수 없는 수식을 NCalc 엔진이 처리하도록 유도하여 발생
🛡️ 대응 방법
NCalc를 버전 6.1.1 이상으로 업데이트하십시오.
🔧 검증 코드
출력된 NCalc의 버전이 6.1.1보다 낮은지 확인하십시오.
dotnet list package | grep NCalc