passenger 6.0.25 → 6.0.26
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGELOG +6 -1
- data/src/agent/Core/Config.h +1 -1
- data/src/agent/Core/Controller/Config.h +1 -1
- data/src/agent/Watchdog/Config.h +1 -1
- data/src/cxx_supportlib/Constants.h +1 -1
- data/src/cxx_supportlib/ServerKit/HttpHeaderParser.h +19 -21
- data/src/ruby_supportlib/phusion_passenger.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 0715fd22339d788849a10399857aa8cacbcf6720fe409d7a94a3760aa5233597
|
|
4
|
+
data.tar.gz: 4a37b6dbe1d2631dfd4fc9b20a610beffc631466ec419bfaa2e65fe82eae4847
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: ea4c77be27c6cf6ef4148c33704382b0119bbe56ec40d9d3ec2e69e87a28dce4ecf23474826634930dd0f452074bf09404e6e7c75a8bc49f51107a01bb51b964
|
|
7
|
+
data.tar.gz: 2baf57d7686439f951da69c5d02dfd9f092a00ea306e9e16060b916418f55c7b815ad63f27eb80c89e17fb2046e62f1fb63b73e7a8ee33f0ad70857697d0baae
|
data/CHANGELOG
CHANGED
|
@@ -1,4 +1,9 @@
|
|
|
1
|
-
Release 6.0.
|
|
1
|
+
Release 6.0.26 (Not yet released)
|
|
2
|
+
-------------
|
|
3
|
+
* [CVE-2025-26803] The http parser (from Passenger 6.0.21-6.0.25) was susceptible to a denial of service attack when parsing a request with an invalid HTTP method.
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
Release 6.0.25
|
|
2
7
|
-------------
|
|
3
8
|
* Fixes compilation with clang 19 (latest Fedora update) by dropping a buggy stddev function from the moving average header. Closes GH-2580.
|
|
4
9
|
* [Standalone] Adds a config option to specify the stop timeout for Passenger: `--stop-timeout 120` or `PASSENGER_STOP_TIMEOUT=120`.
|
data/src/agent/Core/Config.h
CHANGED
|
@@ -168,7 +168,7 @@ using namespace std;
|
|
|
168
168
|
* security_update_checker_interval unsigned integer - default(86400)
|
|
169
169
|
* security_update_checker_proxy_url string - -
|
|
170
170
|
* security_update_checker_url string - default("https://securitycheck.phusionpassenger.com/v1/check.json")
|
|
171
|
-
* server_software string - default("Phusion_Passenger/6.0.
|
|
171
|
+
* server_software string - default("Phusion_Passenger/6.0.26")
|
|
172
172
|
* show_version_in_header boolean - default(true)
|
|
173
173
|
* single_app_mode_app_root string - default,read_only
|
|
174
174
|
* single_app_mode_app_start_command string - read_only
|
|
@@ -118,7 +118,7 @@ parseControllerBenchmarkMode(const StaticString &mode) {
|
|
|
118
118
|
* old_routing boolean - default(false),read_only
|
|
119
119
|
* request_freelist_limit unsigned integer - default(1024)
|
|
120
120
|
* response_buffer_high_watermark unsigned integer - default(134217728)
|
|
121
|
-
* server_software string - default("Phusion_Passenger/6.0.
|
|
121
|
+
* server_software string - default("Phusion_Passenger/6.0.26")
|
|
122
122
|
* show_version_in_header boolean - default(true)
|
|
123
123
|
* start_reading_after_accept boolean - default(true)
|
|
124
124
|
* stat_throttle_rate unsigned integer - default(10)
|
data/src/agent/Watchdog/Config.h
CHANGED
|
@@ -156,7 +156,7 @@ using namespace std;
|
|
|
156
156
|
* security_update_checker_interval unsigned integer - default(86400)
|
|
157
157
|
* security_update_checker_proxy_url string - -
|
|
158
158
|
* security_update_checker_url string - default("https://securitycheck.phusionpassenger.com/v1/check.json")
|
|
159
|
-
* server_software string - default("Phusion_Passenger/6.0.
|
|
159
|
+
* server_software string - default("Phusion_Passenger/6.0.26")
|
|
160
160
|
* setsid boolean - default(false)
|
|
161
161
|
* show_version_in_header boolean - default(true)
|
|
162
162
|
* single_app_mode_app_root string - default,read_only
|
|
@@ -83,7 +83,7 @@
|
|
|
83
83
|
#define PASSENGER_API_VERSION_MAJOR 0
|
|
84
84
|
#define PASSENGER_API_VERSION_MINOR 3
|
|
85
85
|
#define PASSENGER_DEFAULT_USER "nobody"
|
|
86
|
-
#define PASSENGER_VERSION "6.0.
|
|
86
|
+
#define PASSENGER_VERSION "6.0.26"
|
|
87
87
|
#define POOL_HELPER_THREAD_STACK_SIZE 262144
|
|
88
88
|
#define PROCESS_SHUTDOWN_TIMEOUT 60
|
|
89
89
|
#define PROCESS_SHUTDOWN_TIMEOUT_DISPLAY "1 minute"
|
|
@@ -119,31 +119,26 @@ private:
|
|
|
119
119
|
}
|
|
120
120
|
|
|
121
121
|
static size_t http_parser_execute_and_handle_pause(llhttp_t *parser,
|
|
122
|
-
const char *data, size_t len
|
|
122
|
+
const char *data, size_t len)
|
|
123
123
|
{
|
|
124
124
|
llhttp_errno_t rc = llhttp_get_errno(parser);
|
|
125
125
|
switch (rc) {
|
|
126
126
|
case HPE_PAUSED_UPGRADE:
|
|
127
127
|
llhttp_resume_after_upgrade(parser);
|
|
128
|
+
rc = llhttp_get_errno(parser);
|
|
128
129
|
goto happy_path;
|
|
129
130
|
case HPE_PAUSED:
|
|
130
131
|
llhttp_resume(parser);
|
|
132
|
+
rc = llhttp_get_errno(parser);
|
|
131
133
|
goto happy_path;
|
|
132
134
|
case HPE_OK:
|
|
135
|
+
rc = llhttp_execute(parser, data, len);
|
|
133
136
|
happy_path:
|
|
134
|
-
|
|
135
|
-
case HPE_PAUSED_H2_UPGRADE:
|
|
136
|
-
case HPE_PAUSED_UPGRADE:
|
|
137
|
-
case HPE_PAUSED:
|
|
138
|
-
paused = true;
|
|
139
|
-
return (llhttp_get_error_pos(parser) - data);
|
|
140
|
-
case HPE_OK:
|
|
137
|
+
if (rc == HPE_OK) {
|
|
141
138
|
return len;
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
}
|
|
139
|
+
}
|
|
140
|
+
// deliberate fall through
|
|
145
141
|
default:
|
|
146
|
-
error_path:
|
|
147
142
|
return (llhttp_get_error_pos(parser) - data);
|
|
148
143
|
}
|
|
149
144
|
}
|
|
@@ -488,20 +483,22 @@ public:
|
|
|
488
483
|
TRACE_POINT();
|
|
489
484
|
P_ASSERT_EQ(message->httpState, Message::PARSING_HEADERS);
|
|
490
485
|
|
|
491
|
-
size_t ret;
|
|
492
|
-
bool paused;
|
|
493
|
-
|
|
494
486
|
state->parser.data = this;
|
|
495
487
|
currentBuffer = &buffer;
|
|
496
|
-
ret = http_parser_execute_and_handle_pause(&state->parser,
|
|
497
|
-
buffer.start, buffer.size()
|
|
488
|
+
size_t ret = http_parser_execute_and_handle_pause(&state->parser,
|
|
489
|
+
buffer.start, buffer.size());
|
|
498
490
|
currentBuffer = NULL;
|
|
499
491
|
|
|
500
|
-
|
|
492
|
+
llhttp_errno_t llerrno = llhttp_get_errno(&state->parser);
|
|
493
|
+
|
|
494
|
+
bool paused = (llerrno == HPE_PAUSED_H2_UPGRADE || llerrno == HPE_PAUSED_UPGRADE || llerrno == HPE_PAUSED);
|
|
495
|
+
|
|
496
|
+
if ( (!llhttp_get_upgrade(&state->parser) && ret != buffer.size() && !paused) ||
|
|
497
|
+
(llerrno != HPE_OK && !paused) ) {
|
|
501
498
|
UPDATE_TRACE_POINT();
|
|
502
499
|
message->httpState = Message::ERROR;
|
|
503
|
-
switch (
|
|
504
|
-
case HPE_CB_HEADER_FIELD_COMPLETE
|
|
500
|
+
switch (llerrno) {
|
|
501
|
+
case HPE_CB_HEADER_FIELD_COMPLETE:// does this match? was HPE_CB_header_field in old impl
|
|
505
502
|
case HPE_CB_HEADERS_COMPLETE:
|
|
506
503
|
switch (state->state) {
|
|
507
504
|
case HttpHeaderParserState::ERROR_SECURITY_PASSWORD_MISMATCH:
|
|
@@ -526,9 +523,10 @@ public:
|
|
|
526
523
|
break;
|
|
527
524
|
default:
|
|
528
525
|
default_error:
|
|
529
|
-
message->aux.parseError = HTTP_PARSER_ERRNO_BEGIN -
|
|
526
|
+
message->aux.parseError = HTTP_PARSER_ERRNO_BEGIN - llerrno;
|
|
530
527
|
break;
|
|
531
528
|
}
|
|
529
|
+
llhttp_finish(&state->parser);
|
|
532
530
|
} else if (messageHttpStateIndicatesCompletion(MessageType())) {
|
|
533
531
|
UPDATE_TRACE_POINT();
|
|
534
532
|
message->httpMajor = llhttp_get_http_major(&state->parser);
|
|
@@ -31,7 +31,7 @@ module PhusionPassenger
|
|
|
31
31
|
|
|
32
32
|
PACKAGE_NAME = 'passenger'
|
|
33
33
|
# Run 'rake src/cxx_supportlib/Constants.h configkit_schemas_inline_comments' after changing this number.
|
|
34
|
-
VERSION_STRING = '6.0.
|
|
34
|
+
VERSION_STRING = '6.0.26'
|
|
35
35
|
|
|
36
36
|
# Tip: find the SHA-256 with ./dev/nginx_version_sha256 <VERSION>
|
|
37
37
|
PREFERRED_NGINX_VERSION = '1.26.2'
|
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: passenger
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 6.0.
|
|
4
|
+
version: 6.0.26
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Phusion - http://www.phusion.nl/
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2025-02-
|
|
11
|
+
date: 2025-02-19 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: rake
|