| Submitter | yanjun.zhu |
|---|---|
| Date | Nov. 30, 2012, 4:30 a.m. |
| Message ID | <1354249830-25918-1-git-send-email-yanjun.zhu@windriver.com> |
| Download | mbox | patch |
| Permalink | /patch/39933/ |
| State | New |
| Headers | show |
Comments
On 11/29/2012 08:30 PM, yanjun.zhu wrote: > From: "yanjun.zhu" <yanjun.zhu@windriver.com> > > Reference:http://http://bugs.python.org/issue14579 > > The utf-16 decoder in Python 3.1 through 3.3 does not update the > aligned_end variable after calling the unicode_decode_call_errorhandler > function, which allows remote attackers to obtain sensitive information > (process memory) or cause a denial of service (memory corruption and crash) > via unspecified vectors. > > http://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2012-2135 > Signed-off-by: yanjun.zhu <yanjun.zhu@windriver.com> > --- > .../python/python/python-2.7.2-CVE-2012-2135.patch | 22 ++++++++++++++++++++++ > meta/recipes-devtools/python/python_2.7.2.bb | 1 + > 2 files changed, 23 insertions(+) > create mode 100644 meta/recipes-devtools/python/python/python-2.7.2-CVE-2012-2135.patch > > diff --git a/meta/recipes-devtools/python/python/python-2.7.2-CVE-2012-2135.patch b/meta/recipes-devtools/python/python/python-2.7.2-CVE-2012-2135.patch > new file mode 100644 > index 0000000..bb9719e > --- /dev/null > +++ b/meta/recipes-devtools/python/python/python-2.7.2-CVE-2012-2135.patch > @@ -0,0 +1,22 @@ > +Reference:http://http://bugs.python.org/issue14579 > + > +The utf-16 decoder in Python 3.1 through 3.3 does not update the > +aligned_end variable after calling the unicode_decode_call_errorhandler > +function, which allows remote attackers to obtain sensitive information > +(process memory) or cause a denial of service (memory corruption and crash) > +via unspecified vectors. > + > +http://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2012-2135 Need Upstream-Status: Like all the other CVE patches you have submitted, please fix this. I appreciate the work you are doing, but please include Upstream-Status, are these backport, or pending? Sau! > +Signed-off-by: yanjun.zhu <yanjun.zhu@windriver.com> > +diff -urpN a/Objects/unicodeobject.c b/Objects/unicodeobject.c > +--- a/Objects/unicodeobject.c 2012-11-12 16:25:33.000000000 +0800 > ++++ b/Objects/unicodeobject.c 2012-11-12 16:26:22.000000000 +0800 > +@@ -2568,7 +2568,7 @@ PyUnicode_DecodeUTF16Stateful(const char > + } > + > + /* UTF-16 code pair: */ > +- if (q >= e) { > ++ if (e - q < 2) { > + errmsg = "unexpected end of data"; > + startinpos = (((const char *)q)-2)-starts; > + endinpos = ((const char *)e)-starts; > diff --git a/meta/recipes-devtools/python/python_2.7.2.bb b/meta/recipes-devtools/python/python_2.7.2.bb > index 2adb4e4..9dabfb7 100644 > --- a/meta/recipes-devtools/python/python_2.7.2.bb > +++ b/meta/recipes-devtools/python/python_2.7.2.bb > @@ -24,6 +24,7 @@ SRC_URI += "\ > file://setuptweaks.patch \ > file://check-if-target-is-64b-not-host.patch \ > file://search_db_h_in_inc_dirs_and_avoid_warning.patch \ > + file://python-2.7.2-CVE-2012-2135.patch \ > " > > S = "${WORKDIR}/Python-${PV}" >
On 30 November 2012 04:30, yanjun.zhu <yanjun.zhu@windriver.com> wrote: > The utf-16 decoder in Python 3.1 through 3.3 does not update the > aligned_end variable after calling the unicode_decode_call_errorhandler > function, which allows remote attackers to obtain sensitive information > (process memory) or cause a denial of service (memory corruption and crash) > via unspecified vectors. The source for the vulnurability says Python 3.1 to 3.3, but you're patching 2.7. Is the source not considering the Python 2 releases, or is 2.7 safe from the exploit? Ross
On 12/06/2012 09:01 PM, Burton, Ross wrote: > On 30 November 2012 04:30, yanjun.zhu <yanjun.zhu@windriver.com> wrote: >> The utf-16 decoder in Python 3.1 through 3.3 does not update the >> aligned_end variable after calling the unicode_decode_call_errorhandler >> function, which allows remote attackers to obtain sensitive information >> (process memory) or cause a denial of service (memory corruption and crash) >> via unspecified vectors. > The source for the vulnurability says Python 3.1 to 3.3, but you're > patching 2.7. Is the source not considering the Python 2 releases, or > is 2.7 safe from the exploit? > > Ross I exploit it in Python 2.7. This CVE will affect Python2.7.
Patch
diff --git a/meta/recipes-devtools/python/python/python-2.7.2-CVE-2012-2135.patch b/meta/recipes-devtools/python/python/python-2.7.2-CVE-2012-2135.patch new file mode 100644 index 0000000..bb9719e --- /dev/null +++ b/meta/recipes-devtools/python/python/python-2.7.2-CVE-2012-2135.patch @@ -0,0 +1,22 @@ +Reference:http://http://bugs.python.org/issue14579 + +The utf-16 decoder in Python 3.1 through 3.3 does not update the +aligned_end variable after calling the unicode_decode_call_errorhandler +function, which allows remote attackers to obtain sensitive information +(process memory) or cause a denial of service (memory corruption and crash) +via unspecified vectors. + +http://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2012-2135 +Signed-off-by: yanjun.zhu <yanjun.zhu@windriver.com> +diff -urpN a/Objects/unicodeobject.c b/Objects/unicodeobject.c +--- a/Objects/unicodeobject.c 2012-11-12 16:25:33.000000000 +0800 ++++ b/Objects/unicodeobject.c 2012-11-12 16:26:22.000000000 +0800 +@@ -2568,7 +2568,7 @@ PyUnicode_DecodeUTF16Stateful(const char + } + + /* UTF-16 code pair: */ +- if (q >= e) { ++ if (e - q < 2) { + errmsg = "unexpected end of data"; + startinpos = (((const char *)q)-2)-starts; + endinpos = ((const char *)e)-starts; diff --git a/meta/recipes-devtools/python/python_2.7.2.bb b/meta/recipes-devtools/python/python_2.7.2.bb index 2adb4e4..9dabfb7 100644 --- a/meta/recipes-devtools/python/python_2.7.2.bb +++ b/meta/recipes-devtools/python/python_2.7.2.bb @@ -24,6 +24,7 @@ SRC_URI += "\ file://setuptweaks.patch \ file://check-if-target-is-64b-not-host.patch \ file://search_db_h_in_inc_dirs_and_avoid_warning.patch \ + file://python-2.7.2-CVE-2012-2135.patch \ " S = "${WORKDIR}/Python-${PV}"