Commit Graph

4727 Commits

Author SHA1 Message Date
David Cooper
95b6258f82 Fix #2614
Currently `compare_server_name_to_cert()` only indicates whether the server's host name matches a wildcard name in the certificate. So, it does not indicate if the certificate includes a wildcard name that does not match the server's host name. As a result, if a certificate includes the names "api.sub.example.tld" and "*.api.sub.example.tld," then a wildcard certificate warning will be issued for host names such as www.api.sub.example.tld, but not for api.sub.example.tld.

This commit changes `compare_server_name_to_cert()` to indicate whether the certificate is a wildcard certificate in addition to providing information about how the certificate matches the server's host name. Functions that use this function's response are then changed to extract the information they need (matching or wildcard) from the return value.
2025-01-17 05:43:39 -08:00
Dirk Wetter
8000885371 Add more security headers
... and deprecate "X-Content-Security-Policy" and "X-WebKit-CSP"
2025-01-16 21:18:47 +01:00
Dirk Wetter
daf0671878
Merge pull request #2617 from dcooper16/fix2615
Fix #2615
2025-01-16 16:51:47 +01:00
Hyeonho Kang
2e8d4a1128 Edit CONTRIBUTING.md 2025-01-17 00:36:37 +09:00
David Cooper
8e184b886e Fix #2615
The server mentioned in #2615 has a bug, which results in it sending a handshake_failure alert rather than a successful connection if the signature_algorithms extension lists RSA+MD5 before one of the signature algorithms that it supports.

This commit works around this issue by reversing the order in which it lists the signature algorithms in the signature_algorithms extension, thus (generally) listing stronger options first.

This change should not affect the testing, except that it will result in the order of the supported signature algorithms being reversed in the output, if the server respects the client's preferences.
2025-01-16 06:55:54 -08:00
Dirk Wetter
ef92cc70c9
Merge pull request #2616 from testssl/dependabot/github_actions/docker/build-push-action-6.12.0
Bump docker/build-push-action from 6.11.0 to 6.12.0
2025-01-16 12:20:07 +01:00
dependabot[bot]
582d4658ae
Bump docker/build-push-action from 6.11.0 to 6.12.0
Bumps [docker/build-push-action](https://github.com/docker/build-push-action) from 6.11.0 to 6.12.0.
- [Release notes](https://github.com/docker/build-push-action/releases)
- [Commits](https://github.com/docker/build-push-action/compare/v6.11.0...v6.12.0)

---
updated-dependencies:
- dependency-name: docker/build-push-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-01-16 00:29:43 +00:00
Dirk Wetter
90a51e7975
Merge pull request #2612 from testssl/dependabot/github_actions/docker/setup-qemu-action-3.3.0
Bump docker/setup-qemu-action from 3.2.0 to 3.3.0
2025-01-09 09:53:54 +01:00
Dirk Wetter
723b1c17ee
Merge pull request #2613 from testssl/dependabot/github_actions/docker/build-push-action-6.11.0
Bump docker/build-push-action from 6.10.0 to 6.11.0
2025-01-09 09:52:52 +01:00
dependabot[bot]
9c74fe8f31
Bump docker/build-push-action from 6.10.0 to 6.11.0
Bumps [docker/build-push-action](https://github.com/docker/build-push-action) from 6.10.0 to 6.11.0.
- [Release notes](https://github.com/docker/build-push-action/releases)
- [Commits](https://github.com/docker/build-push-action/compare/v6.10.0...v6.11.0)

---
updated-dependencies:
- dependency-name: docker/build-push-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-01-09 00:23:31 +00:00
dependabot[bot]
b6aa4c3214
Bump docker/setup-qemu-action from 3.2.0 to 3.3.0
Bumps [docker/setup-qemu-action](https://github.com/docker/setup-qemu-action) from 3.2.0 to 3.3.0.
- [Release notes](https://github.com/docker/setup-qemu-action/releases)
- [Commits](https://github.com/docker/setup-qemu-action/compare/v3.2.0...v3.3.0)

---
updated-dependencies:
- dependency-name: docker/setup-qemu-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-01-09 00:23:29 +00:00
Dirk Wetter
6d77c93109
Merge pull request #2610 from testssl/links
Change orga from drwetter --> testssl
2025-01-06 16:20:53 +01:00
Dirk Wetter
5f4ca15e57
Merge branch '3.2' into links 2025-01-06 15:41:16 +01:00
Dirk
b708026151 Change orga from drwetter --> testssl
... to avoid redirects on the client side and to make repo migration better visible.

Also amend 'Status' and 'Contributing' in Readme.md. bluesky added, albeit mastodon
seems more interactive. Clarify twitter account is not in use anymore.
2025-01-06 15:34:45 +01:00
Emmanuel Fusté
6c17b66418 CI fix : Cleanup
testssl.sh worked as expected.
Under the hood, broken pipes are expected as part of the fast loop exit
strategy that relies as little as possible on timeout detection.
But under the CI, testssl.sh output is garbled by the subshells stderr
outputs, catched for some reason by 'prove -v'.
Simply redirecting the stderr output of the offending command to
/dev/null fixes the problem.
2024-12-09 14:19:56 +01:00
Emmanuel Fusté
88856ecad5 2nd try 2024-12-09 12:00:16 +01:00
Emmanuel Fusté
f39408086b Merge branch '3.2' into client-renego-refactoring 2024-12-09 11:03:42 +01:00
Emmanuel Fusté
e4e3afbbe8 Tentative to fix CI tests 2024-12-09 10:46:45 +01:00
Dirk Wetter
b5ad5bd859
Merge pull request #2604 from drwetter/dependabot/github_actions/docker/build-push-action-6.10.0
Bump docker/build-push-action from 6.9.0 to 6.10.0
2024-12-06 15:03:47 +01:00
dependabot[bot]
3e7efb7dd6
Bump docker/build-push-action from 6.9.0 to 6.10.0
Bumps [docker/build-push-action](https://github.com/docker/build-push-action) from 6.9.0 to 6.10.0.
- [Release notes](https://github.com/docker/build-push-action/releases)
- [Commits](https://github.com/docker/build-push-action/compare/v6.9.0...v6.10.0)

---
updated-dependencies:
- dependency-name: docker/build-push-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-11-28 00:10:10 +00:00
Dirk Wetter
701c606eac
Merge pull request #2597 from Tazmaniac/quick-fix-2590
Quick fix for #2590
2024-11-27 11:39:25 +01:00
Dirk Wetter
662a99fdce
Merge pull request #2602 from dcooper16/fix2599
Fix #2599
2024-11-27 11:35:41 +01:00
David Cooper
26a3a8fd51
Fix #2599
This commit fixes #2599 by not wrapping fileout() messages in a "clientProblem" wrapper if TLS13_ONLY is set. The TLS13_ONLY flag being set is an indicator that fileout_banner() has already been called.
2024-11-26 09:13:11 -08:00
Dirk Wetter
65c463fcbf
Merge pull request #2600 from janbrasna/fix/ci-badge
Fix CI badge
2024-11-19 20:49:27 +01:00
Jan Brasna
d4fa5df475
Fix CI badge 2024-11-19 20:42:08 +01:00
Emmanuel Fusté
991c1fefb2 One tab fix 2024-11-07 12:25:50 +01:00
Emmanuel Fusté
1aaab67e81 Multiple IP fix and simple not vulnerable printing case recover
- Recover the "not vulnerable" case (no mitigation) printing, cosmetic
  fix.
- With the removing of all s_client invocation other than the main loop
  one, fix the init of the ERRFILE and TMPFILE: no need to append, no
  need to remove, inconditionally zap the content before the loop.
2024-11-05 12:59:01 +01:00
Emmanuel Fusté
7625422976 Spell fix 2024-11-04 21:02:03 +01:00
Emmanuel Fusté
5773303f23 Correct incomplete commit 2024-11-04 20:59:45 +01:00
Emmanuel Fusté
d8b439e48c Address a theorically still possible non HTTP case 2024-11-04 20:53:07 +01:00
Emmanuel Fusté
09719a322b Remove the last 1s euristic
In the wait loop, I was relying on a 1s sleep to eliminate a possible
late zero return value server close on the last attempt.
- do globaly one more harmless "for" iteration
  and remove the sleep 1 for faster and more robust result
- correct the non HTTP case iteration value
- adjust the timeout to the conservative 6s in the non HTTP case,
  for HTTP case it become 33s
- improve comments
2024-11-04 20:25:31 +01:00
Emmanuel Fusté
dab177fda9 Big client renego cleanup / refactoring
All cases could be handled by the single openssl s_client invocation
loop:
- dispatch and adjust comments to not loose them
- remove the first s_client invocation: stuck connections are allready
  handled by the main loop
- remove the second s_client invocation: normal case and server closed
  connections are allready handled by the main loop. The loop take care
  of the race between server connection close and s_client terminating
  too by doing another loop run, not closing STDIN.
- special non HTTP case equivalent to ssl_reneg_attempts=2
- specialcase only the HTTP result printing to not change the output

- openssl-timeout option clashe badly with the main loop logic:
  Introduce $OPENSSL_NOTIMEOUT
2024-11-04 17:27:18 +01:00
Emmanuel Fusté
601dddd388 Quick fix for #2590
Proper fix need another refactoring/cleanup of the renego test.
2024-11-04 11:38:18 +01:00
Dirk Wetter
245ad2ae4a
Merge pull request #2592 from dcooper16/integrity_only_ciphersuites
Support RFC 9150 cipher suites
2024-10-29 00:35:34 +01:00
Dirk Wetter
192505d700
Merge pull request #2591 from dcooper16/libressl4
Support LibreSSL 4.0.0
2024-10-29 00:30:38 +01:00
David Cooper
e17b1c17bb Support RFC 9150 cipher suites
This commit adds support for the two cipher suites in RFC 9150, TLS_SHA256_SHA256 and TLS_SHA384_SHA384. These are authentication and integrity-only cipher suites.
2024-10-28 15:07:22 -07:00
David Cooper
3c54474061
Support LibreSSL 4.0.0
LibreSSL 4.0.0 was recently released. This commit modified the version check in determine_trust() so that there isn't an incorrect warning suggesting that LibreSSL 4.0.0 "<= 1.0.2 might be too unreliable to determine trust."
2024-10-25 12:24:06 -07:00
Dirk Wetter
6452ec997e
Merge pull request #2589 from dcooper16/sha256_stapled_ocsp
Accept stapled OCSP responses that use SHA-256 in CertID
2024-10-17 09:46:10 +02:00
David Cooper
1f37a8406f Accept stapled OCSP responses that use SHA-256 in CertID
This commit modifies check_revocation_ocsp() to check the revocation status of a certificate in a stapled OCSP response whether the response uses SHA-1 or SHA-256 in CertID.
2024-10-16 10:49:40 -07:00
Dirk Wetter
b2e6f990b9
Merge pull request #2588 from drwetter/fix_2582
Mute socat killing & improve STARTTLS grading explanation
2024-10-15 12:26:35 +02:00
Dirk
0abca6f067 Mute socat killing & improve STARTTLS grading explanation
Fixes #2582 .
2024-10-15 10:56:29 +02:00
Dirk Wetter
ba51ca7879
Merge pull request #2587 from drwetter/fix_hexdump_docker
Add link for hexdump correctly
2024-10-15 09:57:08 +02:00
Dirk
fc309b7ee0 Add link for hexdump correctly
... in Dockerfile, see #2586
2024-10-15 09:54:35 +02:00
Dirk Wetter
5064d3073c
Merge pull request #2584 from drwetter/upgradeDockerfile_Lep15.6
Upgrade Dockerfile to leap 15.6
2024-10-14 18:13:35 +02:00
Dirk Wetter
b7a4d5c692
Merge pull request #2583 from drwetter/minor_polish_unitTests
Minor polish unit tests
2024-10-14 18:08:35 +02:00
Dirk
0f44d6777a Upgrade Dockerfile to leap 15.6
As EOL comes closer for openSUSE Leap 15.5 (https://en.opensuse.org/Lifetime)
an update is needed.

``busybox-util-linux`` and ``busybox-vi`` had to be removed as they don't exist
anymore. Busybox was added but hexdump was not provided by the vendor.
As busybox was compiled "properly" hexdump can be added by just linking to it.

This fixes #2563
2024-10-14 17:51:24 +02:00
Dirk Wetter
656726eaab
Merge pull request #2580 from drwetter/fix_2575
Fix json/csv output when STARTTLS problem is passed back
2024-10-14 17:16:09 +02:00
Dirk
e0e742379c see previous commit 2024-10-14 17:15:43 +02:00
Dirk
ae77349f3a see previous commit 2024-10-14 17:11:55 +02:00
Dirk
9b48c1641b Minor polish unit tests
This PR (re-)names the unit test starter properly and improves for some unit tests the phrasing and formatting.
2024-10-14 17:08:12 +02:00