Merge lp:~james-page/keystone/folsom-resync into lp:~openstack-ubuntu-testing/keystone/folsom

Proposed by James Page
Status: Merged
Approved by: Chuck Short
Approved revision: 162
Merged at revision: 161
Proposed branch: lp:~james-page/keystone/folsom-resync
Merge into: lp:~openstack-ubuntu-testing/keystone/folsom
Diff against target: 169 lines (+135/-1)
3 files modified
debian/changelog (+27/-1)
debian/patches/CVE-2013-1865.patch (+107/-0)
debian/patches/series (+1/-0)
To merge this branch: bzr merge lp:~james-page/keystone/folsom-resync
Reviewer Review Type Date Requested Status
Openstack Ubuntu Testers Pending
Review via email: mp+154954@code.launchpad.net

Description of the change

Resync of pending SRU with security updates

To post a comment you must log in.

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'debian/changelog'
2--- debian/changelog 2013-02-21 00:51:14 +0000
3+++ debian/changelog 2013-03-22 13:42:10 +0000
4@@ -1,4 +1,4 @@
5-keystone (2012.2.3+stable-20130220-37b35328-0ubuntu1) quantal-proposed; urgency=low
6+keystone (2012.2.3+stable-20130220-37b35328-0ubuntu1) UNRELEASED; urgency=low
7
8 * Dropped patches, applied upstream:
9 - debian/patches/CVE-2013-0282.patch: [f0b4d30]
10@@ -11,6 +11,23 @@
11
12 -- Adam Gandelman <adamg@ubuntu.com> Wed, 20 Feb 2013 16:32:14 -0400
13
14+keystone (2012.2.3+stable-20130206-82c87e56-0ubuntu2) quantal-proposed; urgency=low
15+
16+ * Resync with latest security updates.
17+ * SECURITY UPDATE: fix PKI revocation bypass
18+ - debian/patches/CVE-2013-1865.patch: validate tokens from the backend
19+ - CVE-2013-1865
20+ * SECURITY UPDATE: fix EC2-style authentication for disabled users
21+ - debian/patches/CVE-2013-0282.patch: adjust keystone/contrib/ec2/core.py
22+ to ensure user and tenant are enabled in EC2
23+ - CVE-2013-0282
24+ * SECURITY UPDATE: fix denial of service
25+ - debian/patches/CVE-2013-1664+1665.patch: disable XML entity parsing
26+ - CVE-2013-1664
27+ - CVE-2013-1665
28+
29+ -- James Page <james.page@ubuntu.com> Fri, 22 Mar 2013 12:02:56 +0000
30+
31 keystone (2012.2.3+stable-20130206-82c87e56-0ubuntu1) quantal-proposed; urgency=low
32
33 [ Adam Gandelman ]
34@@ -31,6 +48,15 @@
35
36 -- Adam Gandelman <adamg@ubuntu.com> Wed, 06 Feb 2013 11:13:12 -0400
37
38+keystone (2012.2.1-0ubuntu1.3) quantal-security; urgency=low
39+
40+ * SECURITY UPDATE: fix PKI revocation bypass
41+ - debian/patches/CVE-2013-1865.patch: validate tokens from the backend
42+ - CVE-2013-1865
43+ - LP: #1129713
44+
45+ -- Jamie Strandboge <jamie@ubuntu.com> Wed, 20 Mar 2013 08:45:09 -0500
46+
47 keystone (2012.2.1-0ubuntu1.2) quantal-security; urgency=low
48
49 * SECURITY UPDATE: fix EC2-style authentication for disabled users
50
51=== added file 'debian/patches/CVE-2013-1865.patch'
52--- debian/patches/CVE-2013-1865.patch 1970-01-01 00:00:00 +0000
53+++ debian/patches/CVE-2013-1865.patch 2013-03-22 13:42:10 +0000
54@@ -0,0 +1,107 @@
55+From 176f11421236156f4c48bac0c4732c281527d563 Mon Sep 17 00:00:00 2001
56+From: Adam Young <ayoung@redhat.com>
57+Date: Thu, 14 Mar 2013 12:05:24 -0500
58+Subject: [PATCH] validate from backend
59+
60+In certain cases we were depending on CMS to validate PKI tokens
61+but that is not necessary, and by passes the revocation check
62+
63+Change-Id: I9d7e60b074aa8c8859971618fed20c8cde2220c4
64+---
65+ keystone/service.py | 19 ++++++-------------
66+ tests/test_service.py | 51 +++++++++++++++++++++++++++++++++++++++++++++++++++
67+ 2 files changed, 57 insertions(+), 13 deletions(-)
68+
69+diff --git a/keystone/service.py b/keystone/service.py
70+index c088986..9799e3a 100644
71+--- a/keystone/service.py
72++++ b/keystone/service.py
73+@@ -490,20 +490,13 @@ class TokenController(wsgi.Application):
74+ """
75+ # TODO(termie): this stuff should probably be moved to middleware
76+ self.assert_admin(context)
77++ data = self.token_api.get_token(context=context, token_id=token_id)
78++ if belongs_to:
79++ if (not data.get('tenant') or data['tenant'].get('id') !=
80++ belongs_to):
81++ raise exception.Unauthorized()
82+
83+- if cms.is_ans1_token(token_id):
84+- data = json.loads(cms.cms_verify(cms.token_to_cms(token_id),
85+- config.CONF.signing.certfile,
86+- config.CONF.signing.ca_certs))
87+- data['access']['token']['user'] = data['access']['user']
88+- data['access']['token']['metadata'] = data['access']['metadata']
89+- if belongs_to:
90+- assert data['access']['token']['tenant']['id'] == belongs_to
91+- token_ref = data['access']['token']
92+- else:
93+- token_ref = self.token_api.get_token(context=context,
94+- token_id=token_id)
95+- return token_ref
96++ return data
97+
98+ # admin only
99+ def validate_token_head(self, context, token_id):
100+diff --git a/tests/test_service.py b/tests/test_service.py
101+index f48bd9a..487e5ac 100644
102+--- a/tests/test_service.py
103++++ b/tests/test_service.py
104+@@ -150,3 +150,54 @@ class AuthTest(test.TestCase):
105+ body_dict = _build_user_auth(username='FOO', password='0' * 8193)
106+ self.assertRaises(exception.ValidationSizeError, self.api.authenticate,
107+ {}, body_dict)
108++
109++
110++class AuthWithToken(AuthTest):
111++ def setUp(self):
112++ super(AuthWithToken, self).setUp()
113++
114++ def test_belongs_to_no_tenant(self):
115++ r = self.api.authenticate(
116++ {},
117++ auth={
118++ 'passwordCredentials': {
119++ 'username': self.user_foo['name'],
120++ 'password': self.user_foo['password']
121++ }
122++ })
123++ unscoped_token_id = r['access']['token']['id']
124++ self.assertRaises(
125++ exception.Unauthorized,
126++ self.api.validate_token,
127++ dict(is_admin=True, query_string={'belongsTo': 'BAR'}),
128++ token_id=unscoped_token_id)
129++
130++ def test_belongs_to_wrong_tenant(self):
131++ body_dict = _build_user_auth(
132++ username='FOO',
133++ password='foo2',
134++ tenant_name="BAR")
135++
136++ scoped_token = self.api.authenticate({}, body_dict)
137++ scoped_token_id = scoped_token['access']['token']['id']
138++
139++ self.assertRaises(
140++ exception.Unauthorized,
141++ self.api.validate_token,
142++ dict(is_admin=True, query_string={'belongsTo': 'me'}),
143++ token_id=scoped_token_id)
144++
145++ def test_belongs_to(self):
146++ body_dict = _build_user_auth(
147++ username='FOO',
148++ password='foo2',
149++ tenant_name="BAR")
150++
151++ scoped_token = self.api.authenticate({}, body_dict)
152++ scoped_token_id = scoped_token['access']['token']['id']
153++
154++ self.assertRaises(
155++ exception.Unauthorized,
156++ self.api.validate_token,
157++ dict(is_admin=True, query_string={'belongsTo': 'BAR'}),
158++ token_id=scoped_token_id)
159+--
160+1.8.1.3
161+
162
163=== modified file 'debian/patches/series'
164--- debian/patches/series 2012-06-22 16:27:53 +0000
165+++ debian/patches/series 2013-03-22 13:42:10 +0000
166@@ -1,2 +1,3 @@
167 fix-ubuntu-tests.patch
168 sql_connection.patch
169+CVE-2013-1865.patch

Subscribers

People subscribed via source and target branches