Commit Graph
100 Commits
Author SHA1 Message Date
Dirk Wetter e3c3f9e89c order by last name 2026-07-12 17:09:50 +02:00
Dirk Wetter 56484e30e3 precision rules, especially when security bug is fixed 2026-07-12 17:08:17 +02:00
Dirk WetterandGitHub 6f02dcdcf4 Merge pull request #3092 from ericcgu/fix/3090-html-xss-pr-url-3.2
Fix stored XSS in HTML report via unescaped Location: header (#3090)
2026-07-12 16:17:10 +02:00
Dirk WetterandGitHub eb4d8183ee Merge pull request #3083 from ericcgu/ericcgu-patch-1
fix: inverted return check in sym-encrypt() at testssl.sh:14741
2026-07-09 12:26:24 +02:00
Dirk WetterandGitHub b5a83f5f10 Merge pull request #3067 from logopk/fix/issuer-cn-linecount-3.2
[Bug] FIXME: issuer_CN error with more than 5 lines in Issuer #3065
2026-06-18 11:30:25 +02:00
Dirk WetterandGitHub 0ff7a3463c Merge pull request #3048 from SteveVaneeckhout/fix-permissions-policy-duplicate-3.2
Backport: Fix Permissions-Policy header listed twice in output
2026-06-01 09:45:44 +02:00
Dirk WetterandGitHub 4f06e1d7af Merge pull request #3033 from testssl/fix_unicode_3003_3.2
Fix DN conversion when reading certificate issuer (3.2)
2026-04-25 11:20:40 +02:00
Dirk Wetter 1a00cd98da Fix DN conversion when reading certificate issuer (3.2)
This fixes #3003 for 3.2 .

The conversion to proper UTF-8 should have taken place by just using -nameopt RFC2253, see manpage openssl-namedisplay-options(1ssl).
As @dcooper16 suggested removing esc_msb should help. This may look counterintuitive but works.
2026-04-22 22:07:45 +02:00
Dirk WetterandGitHub e0d00766b5 Merge pull request #3032 from testssl/fix_doc-problem_3029_3.2
Fix doc error regarding MAX_SOCKET_FAIL + MAX_OSSL_FAIL (3.2)
2026-04-20 18:59:04 +02:00
Dirk a2470b01af Fix doc error regarding MAX_SOCKET_FAIL + MAX_OSSL_FAIL (3.2)
The trailing error messages were swapped in the paragraphs / description for MAX_SOCKET_FAIL + MAX_OSSL_FAIL .
This fixes the confusion for 3.2 , see #3028 .
2026-04-20 18:56:51 +02:00
Dirk WetterandGitHub 30cddcd604 Merge pull request #3025 from dcooper16/missing_groups_32
Add missing TLS 1.3 Brainpool groups
2026-04-15 11:40:39 +02:00
Dirk WetterandGitHub d9cf5da934 Merge pull request #3022 from dcooper16/missing_sigschemes_32
Add missing TLS signature schemes
2026-04-14 10:10:19 +02:00
Dirk WetterandGitHub 2f69d24ca0 Merge pull request #3019 from dcooper16/ossl4_ocsp_32
OpenSSL 4 compatibility for stapled OCSP responses
2026-04-13 09:37:46 +02:00
Dirk WetterandGitHub afcdab9f9a Merge pull request #3013 from testssl/fix_3009_date-detection
Make sure date -r hits a readable dir (3.2)
2026-04-07 18:42:09 +02:00
Dirk d146c56bfd Make sure date -r hits a readable dir (3.2)
When checking early for date flavors, there might be an edge case when a directory with a referred file (for the date command) isn't readable which might cause testssl.sh not to detect the date flavor correctly.

This fixes that (#3009) by cd'ing to / in a subshell which should be cd'able and readable under every platform.
2026-04-07 16:02:48 +02:00
Dirk WetterandGitHub 6efc4c9a85 Merge pull request #3011 from testssl/patch-2
Fix typo
2026-04-07 09:52:49 +02:00
Dirk WetterandGitHub 19fbe436e4 Fix typo 2026-04-07 09:49:51 +02:00
Dirk WetterandGitHub 52dc2d5e57 Merge pull request #3006 from dcooper16/ossl4_32
OpenSSL 4 compatibility
2026-03-25 09:50:10 +01:00
Dirk WetterandGitHub 2d2e665650 Merge pull request #2996 from testssl/drwetter-patch-1
docker + IPv6, incl. host networking
2026-02-18 10:39:22 +01:00
Dirk WetterandGitHub 8d8b6556a5 docker + IPv6, incl. host networking 2026-02-18 10:37:31 +01:00
Dirk WetterandGitHub d2d9d2a041 Merge pull request #2988 from testssl/v3.2.3
Bump version (3.2)
2026-02-12 13:21:40 +01:00
Dirk Wetter 9a2b224d0e Bump version 2026-02-12 12:10:35 +01:00
Dirk WetterandGitHub c01ff1fd77 Merge pull request #2984 from testssl/fix_2983_robot_vars_3.2
Finalize renaming MAX_WAITSOCK --> ROBOT_TIMEOUT (3.2)
2026-02-11 21:36:55 +01:00
Dirk 0c92842024 Google has KEMs wjhich openssl doesn't have yet 2026-02-11 20:12:41 +01:00
Dirk dd83792c58 Fix typo which fixes potential false positives 2026-02-11 19:38:00 +01:00
Dirk 03b0f483dc Finalize the renaming MAX_WAITSOCK --> ROBOT_TIMEOUT (3.2)
The commit 6753a95c939359f9e06fb9f3dd199a0 changed some variables however for consistency
MAX_WAITSOCK should have been completely changed to ROBOT_TIMEOUT .

This PR suggests that. Moreover it changes the local variable robottimeout to robot_timeout.

This fixes #2983 for 3.2 .
2026-01-22 18:36:41 +01:00
Dirk WetterandGitHub 40c1edbd13 Merge pull request #2976 from testssl/mitigate_2083_3.2
Mitigate inconsistent test results for ROBOT (3.2)
2025-12-21 16:13:37 +01:00
Dirk Wetter 1ca2d624d9 Update docs to reflect ROBOT_TIMEOUT 2025-12-20 14:04:37 +01:00
Dirk Wetter 2ab0f3153f Mitigate inconsistent test results for ROBOT (3.2)
As reported a longer while back in #2083 there were trailing bytes when receiving a TLS alert by the ROBOT check.

This PR corrects and thus normalizes the length of the TLS alert message to the correct value, supposed the length in the TLS alert is two bytes and it is an TLS alert. PR for 3.3dev was #2969 .

Also this PR now uses a separate variable for the timeout. Using a separate global variable may offer some possibility for tuning the check when the latency to the target is high. This is still subject of research.
The variable is 10 seconds here to be in line with MAX_WAITSOCK which (name) was used previously.
2025-12-20 13:43:06 +01:00
Dirk WetterandGitHub e4566796a6 Merge pull request #2970 from testssl/fix_missing_vulnLF_3.2
Add missing counter to ROBOT (3.2)
2025-12-19 13:58:42 +01:00
Dirk Wetter 06fd88f67a Add missing counter to ROBOT (3.2)
We missed somehow to add in the big while loop to add the fact that ROBOT is a vulnerability which became
apparent with #2967 (3.3dev).

This PR adds that for 3.2 also. See #2968.
2025-12-15 14:54:20 +01:00
Dirk WetterandGitHub 67ee3d9e9a Merge pull request #2966 from testssl/fix_2944_3.2
Add missing LF after pwnkeys DB check (3.2)
2025-12-14 21:03:35 +01:00
Dirk Wetter 7b30757d84 Add missing LF after pwnkeys DB check (3.2)
This fixes #2944 for 3.2 .

Also for the CRL check there were 2 LFs in the code added for readability.
2025-12-14 17:52:45 +01:00
Dirk WetterandGitHub e22872fff9 Merge pull request #2964 from dcooper16/fix2959_32
Fix #2959
2025-12-14 00:11:43 +01:00
Dirk WetterandGitHub 4d3c1eea07 Merge pull request #2962 from testssl/fix_2960_3.2
Label missing KEMs as LOW severity (3.2)
2025-12-09 16:18:21 +01:00
Dirk Wetter 5a7b534c8e Label missing KEMs as LOW severity (3.2)
see #2960.

As 3.2 is used for distributions it seems consistent if we scan for KEMs
to backport this feature.
2025-12-09 14:16:44 +01:00
Dirk WetterandGitHub dfeb8c5792 Merge pull request #2939 from testssl/fix_2938_3.2
Fix pattern for matching /etc/hosts entries (3.2)
2025-11-04 14:56:59 +01:00
Dirk Wetter a5c13a57cf Fix pattern for matching /etc/hosts entries (3.2)
`grep -w` matches also `string1-whatsoever` so that entries like

```
192.168.0.10 anystring anystring-apache
192.168.0.11 anystring-tomcat
```

matched 3 entries over 2 lines.

This PR fixes #2937 for 3.2 by improving the pattern, so that `string1` needs a trailing whitespace or an EOL -- besides a leading whitespace..
2025-11-04 09:17:08 +01:00
Dirk WetterandGitHub 6bb51ab9ba Merge pull request #2936 from testssl/fix_2933_3.2
Add new Sectigo R46 cert, update Java/Mozilla.pem (3.2)
2025-11-01 18:00:45 +01:00
Dirk 48b0c01c07 Add new Sectigo R46 cert, update Java/Mozilla.pem (3.2)
Fixes #2933 for 3.2 .
2025-11-01 14:32:08 +01:00
Dirk WetterandGitHub a3217a51f3 Merge pull request #2931 from testssl/fix_2929_3.2
Fix date parsing bc of locale problem (3.2)
2025-10-30 20:42:01 +01:00
Dirk 611a44a7cf Merge branch '3.2' into fix_2929_3.2 2025-10-30 18:01:20 +01:00
Dirk WetterandGitHub 8cbfe9b5c9 Merge pull request #2932 from testssl/shorten_badssl_3.2
Shorten badssl GHA as they fail too often (3.2)
2025-10-30 17:58:34 +01:00
Dirk d7ba204c6c Shorten badssl GHA as they fail too often (3.2)
Remove checks which aren't needed
2025-10-30 16:12:33 +01:00
Dirk e024f0daaa Fix date parsing bc of locale problem
The new block making sure that rust coreutils work properly (PR #2913)
introduced a new check in order to determine which date functions
to use.

The function however parsed only for English error messages ("No such file").
This PR fixes #2929 that for 3.2  by setting LC_ALL to C.
2025-10-30 13:49:45 +01:00
Dirk WetterandGitHub 0b0b8ed049 Merge pull request #2928 from testssl/fix_2926_ua_sneaky_3.2
Update "sneaky" user agent (3.2)
2025-10-28 20:52:11 +01:00
Dirk 9bcede1a6c Update "sneaky" user agent (3.2)
fixes #2926 for branch 3.2
2025-10-28 15:19:57 +01:00
Dirk WetterandGitHub 9e269f5488 Merge pull request #2924 from testssl/date_fix_rust-date.3.2
Fix date for Ubuntu >= 25.10 (3.2)
2025-10-12 20:17:09 +02:00
Dirk Wetter df652c05cd Fix date for Ubuntu >= 25.10 (3.2)
Ubuntu 25.10 has transitionned from GNU Core-utils to Rust Core-utils. That changes the testing
results which date version to use for displaying / conversion of dates like in certificates.
Probably more Linux distriutions will follow. See also #2909 .

For maintenance reasons it is advised also the stable version will get this patched. For
3.3dev, see #2913 .
2025-10-12 12:20:29 +02:00
Dirk aeb5e58f70 Update Linux CA store (3.2)
from Debian 13. Fixes #2915 for 3.2
2025-10-11 23:29:17 +02:00
Dirk WetterandGitHub 6d332166aa Merge pull request #2921 from testssl/fix_unittest_3.2
Fix unittest 3.2
2025-10-11 23:28:28 +02:00
Dirk Wetter e8631fb8f7 mac changes 2025-10-11 19:22:19 +02:00
Dirk a27d8b9c31 Update baseline scan for unit test (3.2)
This PR updates the baseline after switching to the new server.  See also #2914 .
2025-10-11 17:39:40 +02:00
Dirk caf7dc561a new IP address 2025-10-09 21:05:58 +02:00
Dirk 2924394160 Don't tigger unit tests whenroff file was changed 2025-10-09 21:03:56 +02:00
Dirk WetterandGitHub a3372ed1a4 Merge pull request #2907 from testssl/fix_file_naming_3.2
Fix file time stamp issue
2025-09-30 20:42:23 +02:00
Dirk ceb24740a3 Fix file time stamp issue
Backport from #2904  (3.3dev). Time stamps for file outputs are now consistent.

Kudos @jdvorak001. Fixes #2901
2025-09-30 17:37:11 +02:00
Dirk WetterandGitHub 6b7aa7a9e6 Merge pull request #2906 from testssl/fix_2884_3.2
Consistency for function ciphers_by_strength() (3.2)
2025-09-30 17:30:46 +02:00
Dirk 43a71b0611 Consistency for function ciphers_by_strength()
This PR ist similar to #2905 for 3.3dev . However for the stable brnach it's
important to note that this is a breaking change as it modifies the output.
That happens only tough when `ciphers_by_strength()` is being used --equivalent
to the command line `./testssl.sh -E` =  `./testssl.sh --cipher-per-proto`. As
this is seldom used and was basically succeeded by `-P, --server-preference`
this looks acceptable as it provides consistency which was overdue.

Details:

* keys now always with `v`, like `supportedciphers_TLSv1_2` and also ciphers
  (e.g. `TLSv1.2   x35     AES256-SHA`)
*  add word "server" to file output so that it reads "NOT a server cipher order configured"

Fixes #2884 for 3.2 .
2025-09-30 16:07:56 +02:00
Dirk WetterandGitHub 2e77f5ea5d Merge pull request #2898 from dcooper16/fix2896_32
Fix #2896
2025-09-22 19:35:27 +02:00
Dirk WetterandGitHub 416de7ef0e Merge pull request #2900 from testssl/backport_32_isHTML_valid
Backport GH runner from 3.3dev
2025-09-22 13:17:36 +02:00
Dirk f29f93ca72 Backport from 3.3dev
... to avoid repeated failures because of heise.de . Looks like there are
server side measures which made some tests fail. Often the MacOS CI runner
is slower and seems to run into that.

See also 56c1e585
2025-09-22 11:06:24 +02:00
Dirk WetterandGitHub c4856bef72 Merge pull request #2890 from testssl/bump_version_3.2
Bump version (3.2)
2025-09-18 11:31:56 +02:00
Dirk WetterandGitHub 73c0ca9f88 Merge pull request #2895 from testssl/update_faq_again_3.2
Restructure, load balancer issue, STARTTLS SMTP better explained
2025-09-18 11:31:24 +02:00
Dirk Wetter 2acba56101 Restructure, load balancer issue, STARTTLS SMTP better explained 2025-09-18 11:14:29 +02:00
Dirk WetterandGitHub 71f60a1317 Merge pull request #2892 from testssl/lucky_phrasing_3.2
Lucky13: improve phrasing for 3.2
2025-09-18 10:24:53 +02:00
Dirk Wetter ae5033a3c7 fix error in baseline (CI) 2025-09-16 19:55:32 +02:00
Dirk WetterandGitHub 13c7977c7c Merge pull request #2889 from testssl/fix_indentation
Fix indentation @ Intermediate cert validity (3.2)
2025-09-16 19:53:05 +02:00
Dirk Wetter 892e95a6ca Rephrase Lucky13 finding for 3.2
see also #2537 .
2025-09-16 14:11:39 +02:00
Dirk Wetter 1504961a8e Bump version (3.2) 2025-09-16 12:58:58 +02:00
Dirk Wetter 0d0fbe4483 Fix indentation @ Intermediate cert validity (3.2)
... when there were two server and >1 intermediate CA certificates.
2025-09-16 12:54:41 +02:00
Dirk WetterandGitHub 559c089c39 Merge pull request #2887 from testssl/fix_http_age_3.2
Fix garbled screen when HTTP Age is not a non-negative int (branch 3.2)
2025-09-16 09:58:40 +02:00
Dirk 7aa9d30a72 Typos fixed which led to wrong file name
... which was catched in unit tests t/{baseline_ipv4_http.t,23_client_simulation}
2025-09-15 22:43:07 +02:00
Dirk WetterandGitHub a11ad9448a Merge pull request #2888 from testssl/update_faq_3.2
Additions to FAQ (branch 3.2)
2025-09-15 22:40:11 +02:00
Dirk Wetter e30565cf76 Additions to FAQ (branch 3.2)
- STARTTLS + rating
- amend paragraphs
- and try to avoid the word "crypto"
2025-09-15 19:18:09 +02:00
Dirk 7bb7ac8f08 Fix garbled screen when HTTP Age is not a non-negative int (3.2)
As suggested in #2885 parsing of the server determined HTTP age var wasn't strict enough, this is a backport for 3.2.

https://www.rfc-editor.org/rfc/rfc7234#section-1.2.1 requires the variable to be a non-negative integer but testssl.sh assumed it was like that but did't check whether that really was the case. This was labled as a (potential) security problem. Potential as it didn't look exploitable after review -- the header as a whole was already sanitized.

This PR fixes the typs confusion and the garbled screen by checking the variable early in run_http_header() and reset it to NaN. That will be used later in run_http_date() to raise a low severity finding.  Kudos to @Tristanhx for catching this and for the suggested PR.

Also, only when running in debug mode, this PR fixes that during service_detection() parts of the not-yet-sanitized header ended up on the screen. The fix just calls sanitze_http_header() for the temporary variable $TMPFILE.

For 3.2 sanitze_http_header() had to be modified to accept an argument and the callers needed to be changed.
2025-09-15 18:57:59 +02:00
Dirk WetterandGitHub 5d275e5370 Merge pull request #2881 from testssl/faq_3.2
FAQ for 3.2
2025-09-02 15:58:13 +02:00
Dirk Wetter af84055e7d Backport FAQ from 3.3dev 2025-09-02 15:53:21 +02:00
Dirk WetterandGitHub c52e5549ed Merge pull request #2864 from testssl/drwetter-patch-1
Modify OS bullet point + badge param
2025-07-29 12:41:59 +02:00
Dirk WetterandGitHub c8044ab7aa Modify OS point + badge param 2025-07-29 12:37:38 +02:00
Dirk WetterandGitHub 878513e140 Merge pull request #2845 from testssl/fix_misleading_ipv4_msg_3.2
Fix displayed message when IPv6 needs to be tested too (3.2)
2025-07-15 23:30:00 +02:00
Dirk Wetter 853cea8530 Fix displayed message when IPv6 needs to be tested too (3.2)
message: "Testing all IPv4 addresses"

related to #2843.
2025-07-15 20:49:07 +02:00
Dirk WetterandGitHub 0191098432 Merge pull request #2841 from testssl/rollup_improvements
Rollup improvements (3.2)
2025-07-13 08:57:27 +02:00
Dirk Wetter 8d905054f3 fix typos 2025-07-12 18:51:24 +02:00
Dirk Wetter 3812554987 Backport readability and more improvements from 3.3dev
The opossum patch improved http_get() , http_get_header/http_head()
in terms of readability. This was backported to improve maintainability.

Also in pwned keys if not pwned appear now in green/OK and not just
info level.

HAS_UDS2 was renamed to HAS2_UDS.
2025-07-12 18:45:45 +02:00
Dirk WetterandGitHub 9b795df17e Merge pull request #2839 from testssl/no_fulloutput@32_isHTML_valid
do not output the whole output
2025-07-12 14:50:48 +02:00
Dirk c6062a2254 do not output the whole output
text + html , comp_ok --> ok
2025-07-11 14:42:05 +02:00
Dirk WetterandGitHub 137c7e2fbb Merge pull request #2832 from testssl/12_diff_homebrew_(3.2)
For Mac: use homebrew's openssl (3.2)
2025-07-10 11:19:41 +02:00
Dirk WetterandGitHub 9290f819af Merge pull request #2836 from testssl/drwetter-patch-1
rating bump to 2009r
2025-07-10 09:41:52 +02:00
Dirk WetterandGitHub 28514d3a88 rating bump to 2009r 2025-07-10 09:41:19 +02:00
Dirk WetterandGitHub f674cde6de Merge pull request #2834 from magnuslarsen/3.2
feat: bump ssllabs rating guide to 2009r
2025-07-10 09:36:33 +02:00
Dirk Wetter d63617c0f6 make it compatible when run locally 2025-07-10 09:14:08 +02:00
Dirk Wetter 815e737bfe Check the correct file 2025-07-09 18:10:30 +02:00
Dirk Wetter 1f589565c7 we changed above the ECDH bit length already 2025-07-09 16:17:28 +02:00
Dirk Wetter 822c6b31d7 fix stnax errors 2025-07-09 15:22:48 +02:00
Dirk Wetter 4f52cbbedf Copy LibreSSL change of naming scheme from t/61_diff_testsslsh.t
... also if NOW only ciphers seem affected.
2025-07-09 13:31:18 +02:00
Dirk Wetter b8aadef737 For Mac: use homebrew's openssl (3.2)
... so that we have a comparison between OpenSSL and LibreSSL. Otherwise this test would be completely futile for MacOS.
Also change the displayed text.
2025-07-08 23:47:19 +02:00
Dirk WetterandGitHub b783fbc660 Merge pull request #2826 from testssl/fix_2825
Fix not working --disable-rating switch
2025-07-07 14:01:50 +02:00
Dirk Wetter 0b79356357 Fix not working --disable-rating switch
The logic was wrong when calling set_rating_state() in parse_cmd_line()
as do_rating was set before to true through set_scanning_defaults().

This PR fixes that by querying ${SKIP_TESTS[@]} instead and then calling
set_rating_state() when no --disable-rating was supplied .
2025-07-07 12:01:43 +02:00
Dirk WetterandGitHub 8cb32a3db9 Merge pull request #2819 from testssl/perf_improvements
Make code2network() faster by using bash instead of tr
2025-07-03 18:14:54 +02:00