x86 IIS module in CI-built MSI fails to load - fuzzy.dll missing MinGW runtime DLLs (error 126)
I maintainer di solito rispondono entro 1 giorno
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 3/5
- Tempo stimato
- 1-2 giorni
- Idoneità per principianti
- 72/100
- Tipo di issue
- Bug
- Chiarezza
- Specificata chiaramente
- Stato di attività
- Tranquilla
- Stack tecnologico
- cpp, github-actions
- Ambito
- build-system, ci-cd
Direzione di ricerca
Inizia in .github/workflows/test-ci-windows.yml e segui la build MINGW32, la directory di release x86 e i passaggi di WiX heat harvest. Verifica le dipendenze della fuzzy.dll x86 inclusa e crea un MSI dal workflow; il lavoro è completato quando il modulo IIS x86 installato viene caricato in un application pool a 32 bit senza l'errore 126.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Describe the bug
The MSI produced by the "CI/CD for IIS Module" workflow installs an x86 IIS module that fails to load in 32-bit application pools with error 126. The x64 module loads and works correctly; only 32-bit pools are affected.
Cause: fuzzy.dll (ssdeep) is built with MinGW gcc in CI, unlike the rest of the module which is MSVC/vcpkg. The 32-bit MinGW build of fuzzy.dll imports libgcc_s_dw2-1.dll (which in turn requires libwinpthread-1.dll), but the MSI does not package these DLLs, so the x86 dependency chain breaks and ModSecurityIIS.dll cannot load. Confirmed by reading the import table of the shipped x86 fuzzy.dll - its only non-system import is libgcc_s_dw2-1.dll, which is not present in the MSI or on a standard Windows Server install.
Logs and dumps
Windows Application Event Log, event ID 2280, on any request to a site in a 32-bit application pool:
The Module DLL C:\WINDOWS\SysWOW64\inetsrv\ModSecurityIIS.dll failed to load. The data is the error.
Event data contains Win32 error 126 (ERROR_MOD_NOT_FOUND).
LoadLibraryEx on C:\Windows\SysWOW64\inetsrv\fuzzy.dll in a 32-bit process fails with error 126; after copying libgcc_s_dw2-1.dll and libwinpthread-1.dll into the same directory, fuzzy.dll, libxml2.dll and modsecurityiis.dll all load successfully.
No debug/audit/error logs are produced because the module never loads. No crash/core dump - clean load failure.
To Reproduce
- Download the MSI artifact (
modsecurityiis-installers-Release) from a "CI/CD for IIS Module" workflow run on v2/master - Install on Windows Server with IIS
- Set an application pool to "Enable 32-Bit Applications = True"
- Request any page from a site in that pool
- Site fails / event 2280 logged; x64 pools on the same server work fine
Expected behavior
x86 module loads in 32-bit application pools, as the x64 module does in 64-bit pools.
Workaround (verified in production)
Copy libgcc_s_dw2-1.dll and libwinpthread-1.dll (from MSYS2 packages mingw-w64-i686-gcc-libs and mingw-w64-i686-libwinpthread) into C:\Windows\SysWOW64\inetsrv\. The module then loads and blocks correctly in 32-bit pools.
Suggested fix
In .github/workflows/test-ci-windows.yml, copy the MinGW runtime DLLs from the MINGW32 environment into the x86 release directory alongside fuzzy.dll before the WiX heat harvest, so they are included in the MSI. (Alternatively, build ssdeep with MSVC like the other dependencies, or statically link the MinGW runtime with -static-libgcc.)
Server
- ModSecurity version: v2/master CI build (post-2.9.13, 2026)
- WebServer: IIS on Windows Server, mixed 32/64-bit application pools
- OS: Windows Server (multiple versions across a shared hosting estate)
- Lingua principale
- C++
- Stelle
- 9.8k
- Fork
- 1.8k
- Merge medio
- 2h 46m
- PR unite (30g)
- 1
Preparare l'ambiente
Non abbiamo ancora controllato i file di configurazione di questo progetto. Parti dal suo README e consulta la nostra guida al primo contributo per i passaggi generali.
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di owasp-modsecurity/ModSecurity
-
2.x Platform - IIS
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 90/100
owasp-modsecurity/ModSecurity#3623 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
2.x Platform - IIS
Difficoltà 2/5 1-3 ore Idoneità per principianti 82/100
owasp-modsecurity/ModSecurity#3621 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
2.x Platform - IIS
Difficoltà 2/5 1-3 ore Idoneità per principianti 84/100
owasp-modsecurity/ModSecurity#3619 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
2.x Platform - IIS
Difficoltà 2/5 1-3 ore Idoneità per principianti 76/100
owasp-modsecurity/ModSecurity#3612 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
3.x
Difficoltà 2/5 1-3 ore Idoneità per principianti 70/100
owasp-modsecurity/ModSecurity#3580 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
Tutte le issue di owasp-modsecurity/ModSecurity
Issue simili
-
area/actorsystem bug tsan
Difficoltà 2/5 1-3 ore Idoneità per principianti 74/100
ydb-platform/ydb#54282 ·
I maintainer di solito rispondono entro 1 giorno
-
bug needs triage
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 90/100
project-chip/connectedhomeip#74434 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 88/100
tenstorrent/tt-metal#58057 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 84/100
maplibre/maplibre-native#4690 ·
I maintainer di solito rispondono entro 1 giorno
-
comp-query-execution
Difficoltà 2/5 1-3 ore Idoneità per principianti 84/100
ClickHouse/ClickHouse#122569 ·
I maintainer di solito rispondono entro 1 giorno