mirror of
https://github.com/asterisk/asterisk.git
synced 2025-12-29 19:09:08 +00:00
Compare commits
16 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
8b8d8a305b | ||
|
|
81d0ad39be | ||
|
|
f32c078e52 | ||
|
|
8690c4ae22 | ||
|
|
1153261939 | ||
|
|
7e79fe7c37 | ||
|
|
8da3445961 | ||
|
|
208bd34750 | ||
|
|
51c70eb85a | ||
|
|
800d8d06cd | ||
|
|
ae937f508a | ||
|
|
d3b0e8ed7a | ||
|
|
b79be916dc | ||
|
|
56dd7cb72b | ||
|
|
c786d91b18 | ||
|
|
973ce10be6 |
1
.lastclean
Normal file
1
.lastclean
Normal file
@@ -0,0 +1 @@
|
||||
40
|
||||
62
asterisk-11.15.1-summary.html
Normal file
62
asterisk-11.15.1-summary.html
Normal file
@@ -0,0 +1,62 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head><meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /><title>Release Summary - asterisk-11.15.1</title></head>
|
||||
<body>
|
||||
<h1 align="center"><a name="top">Release Summary</a></h1>
|
||||
<h3 align="center">asterisk-11.15.1</h3>
|
||||
<h3 align="center">Date: 2015-01-28</h3>
|
||||
<h3 align="center"><asteriskteam@digium.com></h3>
|
||||
<hr/>
|
||||
<h2 align="center">Table of Contents</h2>
|
||||
<ol>
|
||||
<li><a href="#summary">Summary</a></li>
|
||||
<li><a href="#contributors">Contributors</a></li>
|
||||
<li><a href="#commits">Other Changes</a></li>
|
||||
<li><a href="#diffstat">Diffstat</a></li>
|
||||
</ol>
|
||||
<hr/>
|
||||
<a name="summary"><h2 align="center">Summary</h2></a>
|
||||
<center><a href="#top">[Back to Top]</a></center><br/><p>This release has been made to address one or more security vulnerabilities that have been identified. A security advisory document has been published for each vulnerability that includes additional information. Users of versions of Asterisk that are affected are strongly encouraged to review the advisories and determine what action they should take to protect their systems from these issues.</p>
|
||||
<p>Security Advisories: <a href="http://downloads.asterisk.org/pub/security/AST-2015-002.html">AST-2015-002</a></p>
|
||||
<p>The data in this summary reflects changes that have been made since the previous release, asterisk-11.15.0.</p>
|
||||
<hr/>
|
||||
<a name="contributors"><h2 align="center">Contributors</h2></a>
|
||||
<center><a href="#top">[Back to Top]</a></center><br/><p>This table lists the people who have submitted code, those that have tested patches, as well as those that reported issues on the issue tracker that were resolved in this release. For coders, the number is how many of their patches (of any size) were committed into this release. For testers, the number is the number of times their name was listed as assisting with testing a patch. Finally, for reporters, the number is the number of issues that they reported that were closed by commits that went into this release.</p>
|
||||
<table width="100%" border="0">
|
||||
<tr>
|
||||
<td width="33%"><h3>Coders</h3></td>
|
||||
<td width="33%"><h3>Testers</h3></td>
|
||||
<td width="33%"><h3>Reporters</h3></td>
|
||||
</tr>
|
||||
<tr valign="top">
|
||||
<td>
|
||||
3 bebuild<br/>
|
||||
</td>
|
||||
<td>
|
||||
</td>
|
||||
<td>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<hr/>
|
||||
<a name="commits"><h2 align="center">Commits Not Associated with an Issue</h2></a>
|
||||
<center><a href="#top">[Back to Top]</a></center><br/><p>This is a list of all changes that went into this release that did not directly close an issue from the issue tracker. The commits may have been marked as being related to an issue. If that is the case, the issue numbers are listed here, as well.</p>
|
||||
<table width="100%" border="1">
|
||||
<tr><td><b>Revision</b></td><td><b>Author</b></td><td><b>Summary</b></td><td><b>Issues Referenced</b></td></tr><tr><td><a href="http://svn.digium.com/view/asterisk/tags/11.15.1?view=revision&revision=431288">431288</a></td><td>bebuild</td><td>Create 11.15.1 tag</td>
|
||||
<td></td></tr><tr><td><a href="http://svn.digium.com/view/asterisk/tags/11.15.1?view=revision&revision=431294">431294</a></td><td>bebuild</td><td>Update .version; remove old summaries</td>
|
||||
<td></td></tr><tr><td><a href="http://svn.digium.com/view/asterisk/tags/11.15.1?view=revision&revision=431329">431329</a></td><td>bebuild</td><td>Merge r431297-431298 for 11.15.1</td>
|
||||
<td></td></tr></table>
|
||||
<hr/>
|
||||
<a name="diffstat"><h2 align="center">Diffstat Results</h2></a>
|
||||
<center><a href="#top">[Back to Top]</a></center><br/><p>This is a summary of the changes to the source code that went into this release that was generated using the diffstat utility.</p>
|
||||
<pre>
|
||||
.version | 2
|
||||
ChangeLog | 22 ++
|
||||
asterisk-11.15.0-summary.html | 267 --------------------------------
|
||||
asterisk-11.15.0-summary.txt | 342 ------------------------------------------
|
||||
funcs/func_curl.c | 83 ++++++++++
|
||||
5 files changed, 106 insertions(+), 610 deletions(-)
|
||||
</pre><br/>
|
||||
<hr/>
|
||||
</body>
|
||||
</html>
|
||||
93
asterisk-11.15.1-summary.txt
Normal file
93
asterisk-11.15.1-summary.txt
Normal file
@@ -0,0 +1,93 @@
|
||||
Release Summary
|
||||
|
||||
asterisk-11.15.1
|
||||
|
||||
Date: 2015-01-28
|
||||
|
||||
<asteriskteam@digium.com>
|
||||
|
||||
----------------------------------------------------------------------
|
||||
|
||||
Table of Contents
|
||||
|
||||
1. Summary
|
||||
2. Contributors
|
||||
3. Other Changes
|
||||
4. Diffstat
|
||||
|
||||
----------------------------------------------------------------------
|
||||
|
||||
Summary
|
||||
|
||||
[Back to Top]
|
||||
|
||||
This release has been made to address one or more security vulnerabilities
|
||||
that have been identified. A security advisory document has been published
|
||||
for each vulnerability that includes additional information. Users of
|
||||
versions of Asterisk that are affected are strongly encouraged to review
|
||||
the advisories and determine what action they should take to protect their
|
||||
systems from these issues.
|
||||
|
||||
Security Advisories: AST-2015-002
|
||||
|
||||
The data in this summary reflects changes that have been made since the
|
||||
previous release, asterisk-11.15.0.
|
||||
|
||||
----------------------------------------------------------------------
|
||||
|
||||
Contributors
|
||||
|
||||
[Back to Top]
|
||||
|
||||
This table lists the people who have submitted code, those that have
|
||||
tested patches, as well as those that reported issues on the issue tracker
|
||||
that were resolved in this release. For coders, the number is how many of
|
||||
their patches (of any size) were committed into this release. For testers,
|
||||
the number is the number of times their name was listed as assisting with
|
||||
testing a patch. Finally, for reporters, the number is the number of
|
||||
issues that they reported that were closed by commits that went into this
|
||||
release.
|
||||
|
||||
Coders Testers Reporters
|
||||
3 bebuild
|
||||
|
||||
----------------------------------------------------------------------
|
||||
|
||||
Commits Not Associated with an Issue
|
||||
|
||||
[Back to Top]
|
||||
|
||||
This is a list of all changes that went into this release that did not
|
||||
directly close an issue from the issue tracker. The commits may have been
|
||||
marked as being related to an issue. If that is the case, the issue
|
||||
numbers are listed here, as well.
|
||||
|
||||
+------------------------------------------------------------------------+
|
||||
| Revision | Author | Summary | Issues Referenced |
|
||||
|----------+---------+-------------------------------+-------------------|
|
||||
| 431288 | bebuild | Create 11.15.1 tag | |
|
||||
|----------+---------+-------------------------------+-------------------|
|
||||
| 431294 | bebuild | Update .version; remove old | |
|
||||
| | | summaries | |
|
||||
|----------+---------+-------------------------------+-------------------|
|
||||
| 431329 | bebuild | Merge r431297-431298 for | |
|
||||
| | | 11.15.1 | |
|
||||
+------------------------------------------------------------------------+
|
||||
|
||||
----------------------------------------------------------------------
|
||||
|
||||
Diffstat Results
|
||||
|
||||
[Back to Top]
|
||||
|
||||
This is a summary of the changes to the source code that went into this
|
||||
release that was generated using the diffstat utility.
|
||||
|
||||
.version | 2
|
||||
ChangeLog | 22 ++
|
||||
asterisk-11.15.0-summary.html | 267 --------------------------------
|
||||
asterisk-11.15.0-summary.txt | 342 ------------------------------------------
|
||||
funcs/func_curl.c | 83 ++++++++++
|
||||
5 files changed, 106 insertions(+), 610 deletions(-)
|
||||
|
||||
----------------------------------------------------------------------
|
||||
@@ -50,6 +50,7 @@ ASTERISK_FILE_VERSION(__FILE__, "$Revision$")
|
||||
#include "asterisk/app.h"
|
||||
#include "asterisk/utils.h"
|
||||
#include "asterisk/threadstorage.h"
|
||||
#include "asterisk/test.h"
|
||||
|
||||
/*** DOCUMENTATION
|
||||
<function name="CURL" language="en_US">
|
||||
@@ -567,6 +568,31 @@ static void curl_instance_cleanup(void *data)
|
||||
AST_THREADSTORAGE_CUSTOM(curl_instance, curl_instance_init, curl_instance_cleanup);
|
||||
AST_THREADSTORAGE(thread_escapebuf);
|
||||
|
||||
/*!
|
||||
* \brief Check for potential HTTP injection risk.
|
||||
*
|
||||
* CVE-2014-8150 brought up the fact that HTTP proxies are subject to injection
|
||||
* attacks. An HTTP URL sent to a proxy contains a carriage-return linefeed combination,
|
||||
* followed by a complete HTTP request. Proxies will handle this as two separate HTTP
|
||||
* requests rather than as a malformed URL.
|
||||
*
|
||||
* libcURL patched this vulnerability in version 7.40.0, but we have no guarantee that
|
||||
* Asterisk systems will be using an up-to-date cURL library. Therefore, we implement
|
||||
* the same fix as libcURL for determining if a URL is vulnerable to an injection attack.
|
||||
*
|
||||
* \param url The URL to check for vulnerability
|
||||
* \retval 0 The URL is not vulnerable
|
||||
* \retval 1 The URL is vulnerable.
|
||||
*/
|
||||
static int url_is_vulnerable(const char *url)
|
||||
{
|
||||
if (strpbrk(url, "\r\n")) {
|
||||
return 1;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int acf_curl_helper(struct ast_channel *chan, const char *cmd, char *info, char *buf, struct ast_str **input_str, ssize_t len)
|
||||
{
|
||||
struct ast_str *escapebuf = ast_str_thread_get(&thread_escapebuf, 16);
|
||||
@@ -604,6 +630,11 @@ static int acf_curl_helper(struct ast_channel *chan, const char *cmd, char *info
|
||||
|
||||
AST_STANDARD_APP_ARGS(args, info);
|
||||
|
||||
if (url_is_vulnerable(args.url)) {
|
||||
ast_log(LOG_ERROR, "URL '%s' is vulnerable to HTTP injection attacks. Aborting CURL() call.\n", args.url);
|
||||
return -1;
|
||||
}
|
||||
|
||||
if (chan) {
|
||||
ast_autoservice_start(chan);
|
||||
}
|
||||
@@ -762,6 +793,54 @@ static struct ast_custom_function acf_curlopt = {
|
||||
.write = acf_curlopt_write,
|
||||
};
|
||||
|
||||
AST_TEST_DEFINE(vulnerable_url)
|
||||
{
|
||||
const char *bad_urls [] = {
|
||||
"http://example.com\r\nDELETE http://example.com/everything",
|
||||
"http://example.com\rDELETE http://example.com/everything",
|
||||
"http://example.com\nDELETE http://example.com/everything",
|
||||
"\r\nhttp://example.com",
|
||||
"\rhttp://example.com",
|
||||
"\nhttp://example.com",
|
||||
"http://example.com\r\n",
|
||||
"http://example.com\r",
|
||||
"http://example.com\n",
|
||||
};
|
||||
const char *good_urls [] = {
|
||||
"http://example.com",
|
||||
"http://example.com/%5Cr%5Cn",
|
||||
};
|
||||
int i;
|
||||
enum ast_test_result_state res = AST_TEST_PASS;
|
||||
|
||||
switch (cmd) {
|
||||
case TEST_INIT:
|
||||
info->name = "vulnerable_url";
|
||||
info->category = "/funcs/func_curl/";
|
||||
info->summary = "cURL vulnerable URL test";
|
||||
info->description =
|
||||
"Ensure that any combination of '\\r' or '\\n' in a URL invalidates the URL";
|
||||
case TEST_EXECUTE:
|
||||
break;
|
||||
}
|
||||
|
||||
for (i = 0; i < ARRAY_LEN(bad_urls); ++i) {
|
||||
if (!url_is_vulnerable(bad_urls[i])) {
|
||||
ast_test_status_update(test, "String '%s' detected as valid when it should be invalid\n", bad_urls[i]);
|
||||
res = AST_TEST_FAIL;
|
||||
}
|
||||
}
|
||||
|
||||
for (i = 0; i < ARRAY_LEN(good_urls); ++i) {
|
||||
if (url_is_vulnerable(good_urls[i])) {
|
||||
ast_test_status_update(test, "String '%s' detected as invalid when it should be valid\n", good_urls[i]);
|
||||
res = AST_TEST_FAIL;
|
||||
}
|
||||
}
|
||||
|
||||
return res;
|
||||
}
|
||||
|
||||
static int unload_module(void)
|
||||
{
|
||||
int res;
|
||||
@@ -769,6 +848,8 @@ static int unload_module(void)
|
||||
res = ast_custom_function_unregister(&acf_curl);
|
||||
res |= ast_custom_function_unregister(&acf_curlopt);
|
||||
|
||||
AST_TEST_UNREGISTER(vulnerable_url);
|
||||
|
||||
return res;
|
||||
}
|
||||
|
||||
@@ -786,6 +867,8 @@ static int load_module(void)
|
||||
res = ast_custom_function_register(&acf_curl);
|
||||
res |= ast_custom_function_register(&acf_curlopt);
|
||||
|
||||
AST_TEST_REGISTER(vulnerable_url);
|
||||
|
||||
return res;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user