Chrome MV3 확장 프로그램의 재미있는 버그

2025-07-13

Google Chrome이 MV2에서 MV3으로 전환되면서 webRequestBlocking 권한이 제거되어 많은 광고 차단기가 작동하지 않게 되었습니다. 그러나 저자는 재미있는 버그를 발견했습니다. Chrome 확장 프로그램의 API가 JavaScript 바인딩을 사용하기 때문에 `chrome.webRequest` 이벤트 생성자의 매개변수를 조작하여 권한 확인을 우회하고 광고 차단 기능을 활성화할 수 있었습니다. 이 버그는 보안 위험이 아니었지만 레거시 코드에 숨겨진 잠재적인 문제와 기술적 세부 사항을 교묘하게 활용하여 예상치 못한 결과를 얻을 수 있는 가능성을 보여줍니다. 저자는 Google에 이 버그를 보고했으며 현재는 수정되었습니다.

더 보기
개발

ChromeOS 치명적 취약성: Chrome 확장 프로그램을 통한 시스템 완전 제어

2025-05-28

보안 연구원이 ChromeOS 파일 관리자의 심각한 취약성을 발견했습니다. 이 취약성을 통해 악의적인 Chrome 확장 프로그램이 시스템을 완전히 제어할 수 있습니다. filesystem:chrome://file-manager URL을 악용하여 사용자 파일을 읽고 쓰고 임의 코드를 실행할 수 있습니다. 이 취약성은 ChromeOS의 오래된 JavaScript API와 chrome:// 페이지 권한의 잘못된 구성을 이용합니다. 공격자는 시스템을 완전히 제어하고 사용자 데이터에 액세스하고 시스템 설정을 변경하며 Crostini를 통해 악의적인 코드를 실행할 수 있습니다. 패치되었지만 이 취약성은 Chrome/ChromeOS와 같은 대규모 복잡한 시스템에서 오랜 기간 동안의 설계 선택이 가져올 수 있는 위험을 보여줍니다.

더 보기

Zig와 Rust를 넘어: 더욱 사용자 친화적인 메타 프로그래밍 접근 방식

2025-05-26

이 글에서는 Rust의 Hindley-Milner 타입 시스템과 Zig의 컴파일 타임 계산 기능을 결합하여 Zig의 '타입은 값이다' 접근 방식의 복잡성을 피하는 새로운 프로그래밍 언어 설계를 탐구합니다. 컴파일 타임 실행을 위한 `@` 연산자, 컴파일 타임 추상화를 위한 `Abstract` 타입, 타입 내부 조사를 위한 `TypeInfo`와 `Field` 타입, 코드 조작을 위한 `Code`와 `parse` 함수를 도입함으로써, 이 설계는 자동 코드 생성과 TypeScript의 `Partial` 타입과 같은 유틸리티 타입 구현 등 강력한 메타 프로그래밍 기능을 구현하면서 코드 가독성과 추론의 용이성을 유지합니다. 이는 타입 시스템의 사용 편의성을 유지하면서 강력한 메타 프로그래밍을 달성하기 위한 새로운 접근 방식이며, 미래의 언어 설계에 새로운 관점을 제공합니다.

더 보기