Fixes
- Restore cloudcheck tag propagation to URL / OPEN_TCP_PORT children (#3309).
_minimize()was wiping_resolved_hostson parent events, starvingdnsresolvewhen child events reached it. Cloud tags never made it past the DNS_NAME. - Fix
virtualhost.finish()crash when the baseline request returnedNone(#3273). - Escape control characters in console output so raw bytes in scan data can't garble the terminal (#3274, closes #3258).
- Fix stale
baddnsconfig key in thekitchen-sinkpreset; adds a test that validates every bundled preset (#3280, closes #3279). - Fix
openssl_dev_headersdep check to actually require the header, so minimal images (e.g.python:3.11-slim) no longer skip installinglibssl-dev(#3282, closes #3272). - Point API-key docs to
secrets.ymlin the sections that still mentionedbbot.yml(#3283, closes #3270).
waf_bypass improvements
- Lower
neighbor_cidrdefault from /24 to /28 (module +waf-bypasspreset). - Parallelize bypass checks in
finish()up to 100 by default. - Distinguish direct vs neighbor bypass candidates in log output.
- Demote non-IP DNS result log from warning to verbose.
Tooling updates
Dependency bumps
beautifulsoup4 4.14.3β4.15.0, cachetools 6.2.6β7.1.4, cryptography 46.0.5β48.0.1, deepdiff 8.6.1β9.1.0, dnspython 2.7.0β2.8.0, griffe 1.15.0β2.1.0, idna 3.11β3.18, lxml 6.0.2β6.1.0, maturin 1.13.3β1.14.1, mike 2.1.3β2.2.0, mkdocs-material 9.7.1β9.7.7, mkdocstrings 0.30.1β1.0.6, mkdocstrings-python 2.0.2β2.0.5, pip 26.0.1β26.1.2, pre-commit 4.5.1β4.6.0, pydantic 2.12.5β2.13.4, pymdown-extensions 10.20.1β11.0.1, pytest 8.4.2β9.1.1, pytest-cov 7.0.0β7.1.0, pytest-env 1.1.5β1.6.0, pytest-rerunfailures 16.1β16.4, regex 2026.1.15β2026.7.10, requests 2.32.5β2.33.0, ruff 0.15.18β0.15.22, soupsieve 2.8.3β2.8.4, starlette 0.52.1β1.3.1, tornado 6.5.4β6.5.7, urllib3 2.6.3β2.7.0, websockets 15.0.1β16.0, werkzeug 3.1.5β3.1.8, xxhash 3.6.0β3.8.1, ansible-runner 2.4.2β2.4.3, plus actions/cache v5βv6.
Full changelog: v3.0.0...v3.0.1