| Title | TLS alert EOF on paste.rs |
|---|---|
| Author | Rodrigo Arias Mallo |
| Created | Sun, 03 May 2026 19:18:43 +0200 |
| State | open |
Cannot paste in https://paste.rs/web likely due to the TLS alert which aborts the connection before we handle the 303 redirect:
>>>> a_Nav_repush <<<<
Nav_open_url: new url='https://paste.rs/web'
a_Nav_expect_done: repush!
Nav_open_url: new url='https://paste.rs/web'
Connecting to 45.63.94.214:443
>>> sending HTTP:
POST /web HTTP/1.1\x0D
Host: paste.rs\x0D
User-Agent: Dillo/3.3.0\x0D
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\x0D
Accept-Language: en\x0D
Accept-Encoding: gzip, deflate, br\x0D
DNT: 1\x0D
Referer: https://paste.rs/web\x0D
Connection: keep-alive\x0D
Content-Type: application/x-www-form-urlencoded\x0D
Content-Length: 19\x0D
\x0D
content=foo&ext=txt
<<< receiving HTTP:
HTTP/1.1 303 See Other
Server: nginx
Date: Sun, 03 May 2026 17:12:10 GMT
Content-Length: 0
Connection: close
location: /AQSoM.txt
x-content-type-options: nosniff
permissions-policy: interest-cohort=()
x-frame-options: SAMEORIGIN
Strict-Transport-Security: max-age=31536000; includeSubdomains;
X-Frame-Options: SAMEORIGIN
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
TLS ALERT on write: decode error
SSL_read() failed: error:0A000126:SSL routines::unexpected eof while reading
Tls_close_by_key: Avoiding SSL shutdown for: https://paste.rs/web
% dillo -v
Dillo v3.3.0-2-g9df5d021
Libraries: fltk/1.3.11 jpeg/3.1.3 png/1.6.55 webp/1.6.0 zlib/1.3.2 brotli/1.2.0 OpenSSL/3.6.1
Features: +GIF +JPEG +PNG +SVG +WEBP +BROTLI +XEMBED +TLS +IPV6 +CTL
It seems to be a case of non-compliant server. The server must send a close notify alert BEFORE a EOF. When missing, OpenSSL 3 fails at the EOF. See: https://github.com/php/php-src/issues/8369:
OpenSSL became more strict about unexpected EOF (not sending close notify) in 1.1.1e but reverted that change in 1.1.1f due to the huge amount of non-compliant servers. With the new major release 3.0.0 it came back.
Reproduced with curl, but they don't complain even if the close notify is not received:
Here are the relevant packets (22 to 25) for that interaction captured from Wireshark: