Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
97 commits
Select commit Hold shift + click to select a range
c4835ca
Add Dependabot configuration for updates
Easton97-Jens Dec 7, 2025
4317e6c
GitHub Actions Updates: Bump actions/checkout from 4 to 6
dependabot[bot] Dec 7, 2025
95ef56c
Submodule Update: Bump others/libinjection from `b9fcaaf` to `b2d46ec`
dependabot[bot] Dec 7, 2025
912d2da
Submodule Update: Bump others/mbedtls from `2ca6c28` to `e5ba96c`
dependabot[bot] Dec 7, 2025
9054c6d
Submodule Update: Bump bindings/python from `bc625d5` to `47a6925`
dependabot[bot] Dec 7, 2025
bf9c82d
Submodule Update: Bump test/test-cases/secrules-language-tests
dependabot[bot] Dec 7, 2025
b83dfb3
Add Dependabot auto-approve workflow
Easton97-Jens Dec 7, 2025
51c60a3
Merge pull request #5 from Easton97-Jens/dependabot/submodules/test/t…
Easton97-Jens Dec 7, 2025
af0af66
Merge pull request #4 from Easton97-Jens/dependabot/submodules/bindin…
Easton97-Jens Dec 7, 2025
1abcbb1
Merge pull request #2 from Easton97-Jens/dependabot/submodules/others…
Easton97-Jens Dec 7, 2025
16282ba
Merge pull request #3 from Easton97-Jens/dependabot/submodules/others…
Easton97-Jens Dec 7, 2025
d023765
Merge pull request #1 from Easton97-Jens/dependabot/github_actions/ac…
Easton97-Jens Dec 7, 2025
30d1c59
Update configure.ac
Easton97-Jens Dec 7, 2025
a7e8deb
Update base64 header include path
Easton97-Jens Dec 7, 2025
8ea7ec4
Rename ci.yml to ci.yml.alt.
Easton97-Jens Dec 7, 2025
d65909c
Add CI workflow for quality assurance across platforms
Easton97-Jens Dec 7, 2025
7fe7f95
Rename .github/workflows/ci.yml.alt. to backup/ci.yml.alt
Easton97-Jens Dec 7, 2025
d8d8d08
Fix Mbed TLS file path in configure.ac
Easton97-Jens Dec 7, 2025
b395579
Change Lua version from 5.3 to 5.2 in CI
Easton97-Jens Dec 7, 2025
cab7d51
Update ci.yml
Easton97-Jens Dec 7, 2025
890d373
Update ci.yml
Easton97-Jens Dec 7, 2025
3cc1ee1
Fix Mbed TLS base64 file path in configure.ac
Easton97-Jens Dec 7, 2025
2fc73fc
Update Makefile.am
Easton97-Jens Dec 7, 2025
67413c6
Update mbedtls include paths in Makefile.am
Easton97-Jens Dec 7, 2025
4a480eb
Update Makefile.am
Easton97-Jens Dec 7, 2025
e0b919d
Update mbedtls_config.h include path
Easton97-Jens Dec 7, 2025
ba80aa4
Update include path for mbedtls in Makefile.am
Easton97-Jens Dec 7, 2025
26ffe96
Update Makefile to reference check_crypto_config.h
Easton97-Jens Dec 7, 2025
ed32c43
Update Makefile.am
Easton97-Jens Dec 7, 2025
9728a10
Add include path for builtin drivers in Makefile
Easton97-Jens Dec 7, 2025
3199b29
Update Makefile.am
Easton97-Jens Dec 7, 2025
ce21b15
Update ci.yml
Easton97-Jens Dec 7, 2025
3b767ac
Update Makefile.am
Easton97-Jens Dec 7, 2025
daff882
update
Easton97-Jens Dec 7, 2025
8385394
Update Makefile.am
Easton97-Jens Dec 7, 2025
06ebdaf
Add mbedcrypto to Makefile dependencies
Easton97-Jens Dec 7, 2025
9e1d513
Update ci.yml
Easton97-Jens Dec 7, 2025
96217bd
Add mbedcrypto library to rules-check Makefile
Easton97-Jens Dec 7, 2025
7108fff
Update ci.yml
Easton97-Jens Dec 7, 2025
a7570b4
Update ci.yml
Easton97-Jens Dec 7, 2025
84a4eee
Update ci.yml
Easton97-Jens Dec 7, 2025
1e92fe9
Update ci.yml
Easton97-Jens Dec 7, 2025
42b38a5
Update CI workflow to remove libmbedtls-dev
Easton97-Jens Dec 7, 2025
d8ad34b
Remove -lmbedcrypto from Makefile.am
Easton97-Jens Dec 7, 2025
e0986ac
Fix Makefile.am by adjusting YAJL_LDADD line
Easton97-Jens Dec 7, 2025
c3556c8
Update build.sh
Easton97-Jens Dec 7, 2025
72d62fa
Update Makefile.am
Easton97-Jens Dec 7, 2025
fe8a464
Add cmake to CI dependencies
Easton97-Jens Dec 7, 2025
0db7cdd
Update ci.yml
Easton97-Jens Dec 7, 2025
267507a
Update Makefile.am
Easton97-Jens Dec 7, 2025
71baa33
Update Makefile.am
Easton97-Jens Dec 7, 2025
c91936c
Update Makefile.am
Easton97-Jens Dec 7, 2025
d7a2027
Update Makefile.am
Easton97-Jens Dec 7, 2025
054408a
Update Makefile.am
Easton97-Jens Dec 7, 2025
711eae7
Update Makefile.am
Easton97-Jens Dec 7, 2025
18051fe
Update Makefile.am
Easton97-Jens Dec 7, 2025
bba944a
Update ci.yml
Easton97-Jens Dec 8, 2025
8471748
Update ci.yml
Easton97-Jens Dec 8, 2025
5dc7b1b
Update Makefile.am
Easton97-Jens Dec 8, 2025
44261aa
a
Easton97-Jens Dec 8, 2025
ab564fa
update
Easton97-Jens Dec 8, 2025
6de1f14
update
Easton97-Jens Dec 8, 2025
1c40ec0
Update ci.yml
Easton97-Jens Dec 8, 2025
ea0658f
update make und ci
Easton97-Jens Dec 8, 2025
37a9885
update build.sh
Easton97-Jens Dec 8, 2025
dccbb4e
Update ci.yml
Easton97-Jens Dec 8, 2025
163c23d
Update ci.yml
Easton97-Jens Dec 8, 2025
b58ebf9
Update ci.yml
Easton97-Jens Dec 8, 2025
41fa370
Update configure.ac
Easton97-Jens Dec 8, 2025
b9cb9b9
Update ci.yml
Easton97-Jens Dec 9, 2025
62b1456
Add files via upload
Easton97-Jens Dec 9, 2025
8c2d606
Update build_on_linux.sh
Easton97-Jens Dec 9, 2025
181ede7
Update ci.yml
Easton97-Jens Dec 9, 2025
2dfd79a
Merge branch 'owasp-modsecurity:v3/master' into v3/master
Easton97-Jens Dec 9, 2025
37b2b77
Update ci.yml
Easton97-Jens Dec 9, 2025
773b004
Merge branch 'v3/master' of https://github.com/Easton97-Jens/ModSecur…
Easton97-Jens Dec 9, 2025
3d6c94c
update
Easton97-Jens Dec 9, 2025
f1ec16e
Update ci.yml
Easton97-Jens Dec 9, 2025
0702c36
aufräumen
Easton97-Jens Dec 9, 2025
9f5ace3
Update ci.yml
Easton97-Jens Dec 9, 2025
b96a0a5
update
Easton97-Jens Dec 14, 2025
0780734
Submodule Update: Bump others/mbedtls from `e5ba96c` to `abb0b22`
dependabot[bot] Dec 14, 2025
f5c36b9
Merge pull request #6 from Easton97-Jens/dependabot/submodules/others…
Easton97-Jens Dec 14, 2025
555ad38
Update codeql.yml
Easton97-Jens Dec 14, 2025
fc2a334
Update codeql.yml
Easton97-Jens Dec 14, 2025
c522618
Update codeql.yml
Easton97-Jens Dec 14, 2025
187e1ee
Update cppcheck.yml
Easton97-Jens Dec 14, 2025
f86a33d
Update cppcheck.yml
Easton97-Jens Dec 14, 2025
46006bf
Update build_on_linux.sh
Easton97-Jens Dec 14, 2025
3a3f74d
update
Easton97-Jens Dec 14, 2025
1b64ddf
Merge branch 'v3/master-mbedtl-v4' of https://github.com/Easton97-Jen…
Easton97-Jens Dec 14, 2025
624fc8f
Update ci.yml
Easton97-Jens Dec 14, 2025
c17aa79
Update codeql-config.yml
Easton97-Jens Dec 14, 2025
1cdf8e0
Update dependabot-auto-approve.yaml
Easton97-Jens Dec 14, 2025
69c2344
Code scanning
Easton97-Jens Dec 14, 2025
db7bf55
Update ci.yml
Easton97-Jens Dec 14, 2025
e2e5a9a
Update scorecard.yml
Easton97-Jens Dec 14, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
21 changes: 21 additions & 0 deletions .github/codeql/codeql-config.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
name: "CodeQL config for ModSecurity"

queries:
- uses: security-extended

paths-ignore:
# Tests
- "tests/**"
- "test/**"
- "**/*test*"

# Third-party / submodules
- "others/**"
- "bindings/**"
- "examples/**"
- "doc/**"

# Build & generated files
- "build/**"
- "**/*.png"
- "**/*.md"
15 changes: 15 additions & 0 deletions .github/dependabot.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
version: 2
updates:
- package-ecosystem: "gitsubmodule"
directory: "/"
schedule:
interval: "daily"
commit-message:
prefix: "Submodule Update"

- package-ecosystem: "github-actions"
directory: "/"
schedule:
interval: "daily"
commit-message:
prefix: "GitHub Actions Updates"
28 changes: 28 additions & 0 deletions .github/security-scan-excludes.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
# Build & Output
build
build/*
out
out/*
dist
dist/*

# Dependencies / Vendored
vendor
vendor/*
third_party
third_party/*
deps
deps/*
external
external/*

# VCS / CI
.git
.github

# Docs & misc
docs
examples
tests
test
benchmarks
208 changes: 105 additions & 103 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,10 +10,9 @@ jobs:
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ubuntu-22.04]
os: [ubuntu-24.04]
platform:
- {label: "x64", arch: "amd64", configure: ""}
- {label: "x32", arch: "i386", configure: "PKG_CONFIG_PATH=/usr/lib/i386-linux-gnu/pkgconfig CFLAGS=-m32 CXXFLAGS=-m32 LDFLAGS=-m32"}
- {label: "x64", arch: "amd64", configure: ""} # nur noch x64
compiler:
- {label: "gcc", cc: "gcc", cxx: "g++"}
- {label: "clang", cc: "clang", cxx: "clang++"}
Expand All @@ -27,11 +26,8 @@ jobs:
- {label: "wo ssdeep", opt: "--without-ssdeep" }
- {label: "with lmdb", opt: "--with-lmdb" }
- {label: "with pcre", opt: "--with-pcre" }
exclude:
- platform: {label: "x32"}
configure: {label: "wo geoip"}
- platform: {label: "x32"}
configure: {label: "wo ssdeep"}
# keine excludes mehr nötig – es gibt kein x32

steps:
- name: Setup Dependencies (common)
run: |
Expand All @@ -40,36 +36,48 @@ jobs:
sudo apt-get install -y libyajl-dev:${{ matrix.platform.arch }} \
libcurl4-openssl-dev:${{ matrix.platform.arch }} \
liblmdb-dev:${{ matrix.platform.arch }} \
liblua5.2-dev:${{ matrix.platform.arch }} \
liblua5.3-dev:${{ matrix.platform.arch }} \
libmaxminddb-dev:${{ matrix.platform.arch }} \
libpcre2-dev:${{ matrix.platform.arch }} \
pcre2-utils:${{ matrix.platform.arch }} \
bison flex
- name: Setup Dependencies (x32)
if: ${{ matrix.platform.label == 'x32' }}
run: |
sudo apt-get install g++-multilib
sudo apt-get install -y libxml2-dev:${{ matrix.platform.arch }} \
libpcre3-dev:${{ matrix.platform.arch }}
libpcre3-dev:${{ matrix.platform.arch }} \
bison flex cmake \
libmbedtls-dev:${{ matrix.platform.arch }}
# x32-Setup fällt komplett weg

- name: Setup Dependencies (x64)
if: ${{ matrix.platform.label == 'x64' }}
run: |
sudo apt-get install -y libgeoip-dev:${{ matrix.platform.arch }} \
libfuzzy-dev:${{ matrix.platform.arch }}
- uses: actions/checkout@v4
libfuzzy-dev:${{ matrix.platform.arch }}

- uses: actions/checkout@v6
with:
submodules: true
fetch-depth: 0
- name: build.sh
run: ./build.sh

- name: Init git submodules
run: |
git submodule sync --recursive
git submodule update --init --recursive --force

- name: Build-Script ausführbar machen
run: chmod +x build_on_linux.sh

- name: build_on_linux.sh
run: ./build_on_linux.sh

- name: configure
env:
CC: ${{ matrix.compiler.cc }}
CXX: ${{ matrix.compiler.cxx }}
run: ./configure ${{ matrix.platform.configure }} ${{ matrix.configure.opt }} --enable-assertions=yes
run: ./configure ${{ matrix.configure.opt }} --enable-assertions=yes --disable-dependency-tracking

- uses: ammaraskar/gcc-problem-matcher@master

- name: make
run: make -j `nproc`

- name: check
run: make check

Expand All @@ -78,22 +86,27 @@ jobs:
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [macos-14]
os: [macos-14, macos-15, macos-26]
configure:
- {label: "with parser generation", opt: "--enable-parser-generation" }
- {label: "wo curl", opt: "--without-curl" }
- {label: "wo lua", opt: "--without-lua" }
- {label: "wo maxmind", opt: "--without-maxmind" }
- {label: "wo libxml", opt: "--without-libxml" }
- {label: "with parser generation", opt: "--enable-parser-generation --without-geoip" }
- {label: "wo curl", opt: "--without-curl --without-geoip" }
- {label: "wo lua", opt: "--without-lua --without-geoip" }
- {label: "wo maxmind", opt: "--without-maxmind --without-geoip" }
- {label: "wo libxml", opt: "--without-libxml --without-geoip" }
- {label: "wo geoip", opt: "--without-geoip" }
- {label: "wo ssdeep", opt: "--without-ssdeep" }
- {label: "with lmdb", opt: "--with-lmdb" }
- {label: "with pcre", opt: "--with-pcre" }
- {label: "wo ssdeep", opt: "--without-ssdeep --without-geoip" }
- {label: "with lmdb", opt: "--with-lmdb --without-geoip" }
- {label: "with pcre", opt: "--with-pcre --without-geoip" }

steps:
- name: Setup Dependencies
# curl, pcre2 not installed because they're already
# included in the image
- name: Setup Homebrew
run: |
echo "PATH=/opt/homebrew/bin:$PATH" >> $GITHUB_ENV
echo "PKG_CONFIG_PATH=/opt/homebrew/lib/pkgconfig:/opt/homebrew/opt/openssl/lib/pkgconfig:/opt/homebrew/opt/pcre/lib/pkgconfig:/opt/homebrew/opt/pcre2/lib/pkgconfig:/opt/homebrew/opt/libxml2/lib/pkgconfig:/opt/homebrew/opt/curl/lib/pkgconfig:/opt/homebrew/opt/icu4c/lib/pkgconfig:/opt/homebrew/opt/openssl@3/lib/pkgconfig" >> $GITHUB_ENV

- name: Install Dependencies
run: |
brew update
brew install autoconf \
automake \
libtool \
Expand All @@ -105,87 +118,74 @@ jobs:
ssdeep \
pcre \
bison \
flex
- uses: actions/checkout@v4
flex \
mbedtls

- uses: actions/checkout@v6
with:
submodules: true
fetch-depth: 0
- name: Build GeoIP

- name: Init git submodules
run: |
git clone --depth 1 --no-checkout https://github.com/maxmind/geoip-api-c.git
cd geoip-api-c
git fetch --tags
# Check out the last release, v1.6.12
git checkout 4b526e7331ca1d692b74a0509ddcc725622ed31a
autoreconf --install
./configure --disable-dependency-tracking --disable-silent-rules --prefix=/opt/homebrew
make install
- name: build.sh
run: ./build.sh
git submodule sync --recursive
git submodule update --init --recursive --force

- name: Build-Script ausführbar machen
run: chmod +x build_on_macos.sh
- name: build_on_macos.sh
run: ./build_on_macos.sh

- name: configure
run: ./configure ${{ matrix.configure.opt }} --enable-assertions=yes
env:
CPPFLAGS: -I/opt/homebrew/opt/mbedtls/include
LDFLAGS: -L/opt/homebrew/opt/mbedtls/lib
run: ./configure ${{ matrix.configure.opt }} --enable-assertions=yes --disable-dependency-tracking

- uses: ammaraskar/gcc-problem-matcher@master

- name: make
run: make -j `sysctl -n hw.logicalcpu`

- name: check
run: make check

build-windows:
name: Windows (${{ matrix.platform.label }}, ${{ matrix.configure.label }})
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [windows-2022]
platform:
- {label: "x64", arch: "x86_64"}
configuration: [Release]
configure:
- {label: "full", opt: "" }
- {label: "wo curl", opt: "-DWITH_CURL=OFF" }
- {label: "wo lua", opt: "-DWITH_LUA=OFF" }
- {label: "wo maxmind", opt: "-DWITH_MAXMIND=OFF" }
- {label: "wo libxml", opt: "-DWITH_LIBXML2=OFF" }
- {label: "with lmdb", opt: "-DWITH_LMDB=ON" }
steps:
- uses: actions/checkout@v4
with:
submodules: true
fetch-depth: 0
- name: Install Conan
run: |
pip3 install conan --upgrade
conan profile detect
- uses: ammaraskar/msvc-problem-matcher@master
- name: Build ${{ matrix.configuration }} ${{ matrix.platform.arch }} ${{ matrix.configure.label }}
shell: cmd
run: vcbuild.bat ${{ matrix.configuration }} ${{ matrix.platform.arch }} NO_ASAN "${{ matrix.configure.opt }}"
- name: Set up test environment
working-directory: build\win32\build\${{ matrix.configuration }}
env:
BASE_DIR: ..\..\..\..
shell: cmd
run: |
copy unit_tests.exe %BASE_DIR%\test
copy regression_tests.exe %BASE_DIR%\test
copy libModSecurity.dll %BASE_DIR%\test
copy %BASE_DIR%\unicode.mapping %BASE_DIR%\test
md \tmp
md \bin
copy "C:\Program Files\Git\usr\bin\echo.exe" \bin
copy "C:\Program Files\Git\usr\bin\echo.exe" \bin\echo
- name: Disable tests that don't work on Windows
working-directory: test\test-cases\regression
shell: cmd
run: |
jq "map(if .title == \"Test match variable (1/n)\" then .enabled = 0 else . end)" issue-2423-msg-in-chain.json > tmp.json && move /Y tmp.json issue-2423-msg-in-chain.json
jq "map(if .title == \"Test match variable (2/n)\" then .enabled = 0 else . end)" issue-2423-msg-in-chain.json > tmp.json && move /Y tmp.json issue-2423-msg-in-chain.json
jq "map(if .title == \"Test match variable (3/n)\" then .enabled = 0 else . end)" issue-2423-msg-in-chain.json > tmp.json && move /Y tmp.json issue-2423-msg-in-chain.json
jq "map(if .title == \"Variable offset - FILES_NAMES\" then .enabled = 0 else . end)" offset-variable.json > tmp.json && move /Y tmp.json offset-variable.json
- name: Run tests
working-directory: build\win32\build
run: |
ctest -C ${{ matrix.configuration }} --output-on-failure

# build-windows:
# name: Windows (${{ matrix.configure.label }})
# runs-on: windows-latest
# strategy:
# matrix:
# configure:
# - {label: "default", opt: "" }
# - {label: "wo curl", opt: "-DWITH_CURL=OFF" }
# - {label: "wo lua", opt: "-DWITH_LUA=OFF" }
# - {label: "wo maxmind", opt: "-DWITH_MAXMIND=OFF" }
# - {label: "wo libxml", opt: "-DWITH_LIBXML2=OFF" }
# - {label: "with lmdb", opt: "-DWITH_LMDB=ON" }
# steps:
# - uses: actions/checkout@v6
# with:
# submodules: true
# fetch-depth: 0
# - name: Init git submodules
# run: |
# git submodule sync --recursive
# git submodule update --init --recursive --force
# - name: Install Conan
# run: |
# pip3 install conan
# - name: Configure Conan
# run: |
# conan profile detect
# - name: Configure CMake
# run: |
# cmake -S . -B build ${{ matrix.configure.opt }}
# - name: Build
# run: |
# cmake --build build --config Release


cppcheck:
runs-on: [macos-14]
steps:
Expand All @@ -199,9 +199,11 @@ jobs:
with:
submodules: true
fetch-depth: 0
- name: Build-Script ausführbar machen
run: chmod +x build_on_macos.sh
- name: configure
run: |
./build.sh
./build_on_macos.sh
./configure
- name: cppcheck
run: make check-static
Loading