새로운 XML 파서 라이브러리 렉스팟(LexPat)이 린 4(Lean 4) 프로그래밍 언어로 개발되어 깃허브(GitHub)에 공개되었습니다. 이 라이브러리는 널리 사용되는 C 언어 기반의 익스팟(libexpat) 파서의 XML 1.0 파싱 의미론을 재현하면서, 특히 보안에 취약할 수 있는 '신뢰할 수 없는(untrusted)' XML 입력에 대한 처리 안정성을 높이는 데 중점을 둡니다. 이는 데이터 교환이 빈번한 현대 웹 환경에서 중요한 보안 강화 요소로 작용할 수 있습니다.
렉스팟은 기존 익스팟의 동작 방식을 따르되, 오류 메시지, 바이트 오프셋, 콜백 청크 경계 등 세부 사항을 표준화하여 XML 1.0 (5차 개정판) 문서의 의미론을 정확히 재현합니다. 라이브러리는 순수 함수형(pure, total)이며 재개 가능한(resumable) 파서 코어로 설계되었고, 기계 검증된(machine-checked) UTF-8 디코더를 포함하여 견고성을 확보했습니다. 또한, C 언어와의 상호 운용성을 위해 `include/expat.h` 및 `liblexpat.so.1` 아티팩트를 제공하며, 이를 통해 제한된 C-ABI(Application Binary Interface) 호출 표면을 검증된 방식으로 사용할 수 있도록 지원합니다.
이러한 접근 방식은 XML 파싱 과정에서 발생할 수 있는 잠재적 취약점이나 예기치 않은 동작을 최소화하는 데 기여합니다. 특히, 린 4와 같은 형식 검증(formal verification)이 가능한 언어를 사용함으로써 코드의 정확성과 안정성을 수학적으로 보장하려는 시도는, 보안이 중요한 시스템이나 민감한 데이터를 다루는 애플리케이션 개발자에게 큰 이점을 제공합니다. 렉스팟은 익스팟의 완전한 드롭인(drop-in) 대체재는 아니지만, 명시된 지원 범위 내에서 안전하고 신뢰할 수 있는 XML 파싱 솔루션을 제공하여 개발자들이 더욱 견고한 소프트웨어를 구축하는 데 도움을 줄 것입니다.