mirror of
https://github.com/curl/curl.git
synced 2026-08-01 18:40:33 +03:00
URL sanitize: reject URLs containing bad data
Protocols (IMAP, POP3 and SMTP) that use the path part of a URL in a decoded manner now use the new Curl_urldecode() function to reject URLs with embedded control codes (anything that is or decodes to a byte value less than 32). URLs containing such codes could easily otherwise be used to do harm and allow users to do unintended actions with otherwise innocent tools and applications. Like for example using a URL like pop3://pop3.example.com/1%0d%0aDELE%201 when the app wants a URL to get a mail and instead this would delete one. This flaw is considered a security vulnerability: CVE-2012-0036 Security advisory at: http://curl.haxx.se/docs/adv_20120124.html Reported by: Dan Fandrich
This commit is contained in:
parent
db1a856b4f
commit
75ca568fa1
5 changed files with 62 additions and 31 deletions
|
|
@ -953,17 +953,12 @@ static CURLcode imap_parse_url_path(struct connectdata *conn)
|
|||
struct imap_conn *imapc = &conn->proto.imapc;
|
||||
struct SessionHandle *data = conn->data;
|
||||
const char *path = data->state.path;
|
||||
int len;
|
||||
|
||||
if(!*path)
|
||||
path = "INBOX";
|
||||
|
||||
/* url decode the path and use this mailbox */
|
||||
imapc->mailbox = curl_easy_unescape(data, path, 0, &len);
|
||||
if(!imapc->mailbox)
|
||||
return CURLE_OUT_OF_MEMORY;
|
||||
|
||||
return CURLE_OK;
|
||||
return Curl_urldecode(data, path, 0, &imapc->mailbox, NULL, TRUE);
|
||||
}
|
||||
|
||||
/* call this when the DO phase has completed */
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue