mirror of
https://gitlab.torproject.org/tpo/core/tor.git
synced 2024-11-10 05:03:43 +01:00
Implement proposal 351
This proposal adds new syntax to the SOCKS5 username/password extension scheme, so that requests with usernames starting with <torS0X> are now reserved. For C tor, all we need to do is reject every username starting with <torS0X> unless it is exactly "<torS0X>0".
This commit is contained in:
parent
17a70ab7c5
commit
3dfbacc7b6
7
changes/prop351
Normal file
7
changes/prop351
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
o Minor features (SOCKS):
|
||||||
|
- Detect invalid SOCKS5 username/password combinations according to
|
||||||
|
new extended parameters syntax. (Currently, this rejects any
|
||||||
|
SOCKS5 username beginning with "<torS0X>", except for the username
|
||||||
|
"<torS0X>0". Such usernames are now reserved to communicate additional
|
||||||
|
parameters with other Tor implementations.)
|
||||||
|
Implements proposal 351.
|
@ -451,6 +451,19 @@ parse_socks5_userpass_auth(const uint8_t *raw_data, socks_request_t *req,
|
|||||||
const char *password =
|
const char *password =
|
||||||
socks5_client_userpass_auth_getconstarray_passwd(trunnel_req);
|
socks5_client_userpass_auth_getconstarray_passwd(trunnel_req);
|
||||||
|
|
||||||
|
/* Detect invalid SOCKS5 extended-parameter requests. */
|
||||||
|
if (usernamelen >= 8 &&
|
||||||
|
tor_memeq(username, "<torS0X>", 8)) {
|
||||||
|
/* This is indeed an extended-parameter request. */
|
||||||
|
if (usernamelen != 9 ||
|
||||||
|
tor_memneq(username, "<torS0X>0", 9)) {
|
||||||
|
/* This request is an unrecognized version, or it includes an Arti RPC
|
||||||
|
* object ID (which we do not recognize). */
|
||||||
|
res = SOCKS_RESULT_INVALID;
|
||||||
|
goto end;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if (usernamelen && username) {
|
if (usernamelen && username) {
|
||||||
tor_free(req->username);
|
tor_free(req->username);
|
||||||
req->username = tor_memdup_nulterm(username, usernamelen);
|
req->username = tor_memdup_nulterm(username, usernamelen);
|
||||||
|
Loading…
Reference in New Issue
Block a user