Bug 746118
Summary: | In FIPS mode, weberror throws unhandled exception | ||
---|---|---|---|
Product: | Red Hat Enterprise Linux 6 | Reporter: | jared jennings <jjennings> |
Component: | python-weberror | Assignee: | Jan Pokorný [poki] <jpokorny> |
Status: | CLOSED ERRATA | QA Contact: | qe-baseos-daemons |
Severity: | high | Docs Contact: | |
Priority: | high | ||
Version: | 6.4 | CC: | azelinka, fdinitto, jharriga, jpokorny, jscotka, jwest, lmacken, rrajaram, tpelka |
Target Milestone: | rc | ||
Target Release: | --- | ||
Hardware: | Unspecified | ||
OS: | Unspecified | ||
Whiteboard: | |||
Fixed In Version: | python-weberror-0.10.2-2.el6 | Doc Type: | Bug Fix |
Doc Text: |
Cause:
WebError, a middleware handling web application's errors, used to yield
unique error identification as purpose-specific encoding of MD5 digest
of traceback-based inputs. Nowadays, this algorithm is discouraged, and
in turn implicitly refused by Python's runtime in case of FIPS mode.
Consequence:
Some web applications using WebError may not work correctly upon risen
exception under FIPS mode.
Fix:
In parallel with upstream development, pragmatic approach to session
identification is applied -- the value is not generated automatically,
avoiding the possible failure in FIPS mode when not needed.
Applications relying on this value are still not compatible with FIPS
in favor of backward compatibility.
Result:
Unless explicitly required, WebError no longer actively computes MD5
digest, so in such case, the errors handling in respective web
applications does not suffer in FIPS mode.
|
Story Points: | --- |
Clone Of: | Environment: | ||
Last Closed: | 2013-11-21 23:53:01 UTC | Type: | --- |
Regression: | --- | Mount Type: | --- |
Documentation: | --- | CRM: | |
Verified Versions: | Category: | --- | |
oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | |
Cloudforms Team: | --- | Target Upstream Version: | |
Embargoed: | |||
Bug Depends On: | |||
Bug Blocks: | 782183, 956360 |
Description
jared jennings
2011-10-13 23:16:49 UTC
This request was evaluated by Red Hat Product Management for inclusion in the current release of Red Hat Enterprise Linux. Because the affected component is not scheduled to be updated in the current release, Red Hat is unfortunately unable to address this request at this time. Red Hat invites you to ask your support representative to propose this request, if appropriate and relevant, in the next release of Red Hat Enterprise Linux. If you would like it considered as an exception in the current release, please ask your support representative. Thanks for filing this bug report. As noted above, please ask your support representative if you wish to escalate this issue. By the way, it may be worth noting that RHEL 6's python has some FIPS fixes compared to a "vanilla" upstream build of Python. In FIPS compliance mode, a vanilla build of Python segfaults when attempting to use non-FIPS-compliant hash algorithms (such as MD5), due to a lack of error-checking for this case within the the _hashlib module (which is implemented in C). We patched it in RHEL 6.0 to fix the segfault, and raise an exception instead, which is the ValueError exception that you're seeing. So the ValueError exception is, strictly speaking, a non-standard RHEL-ism, albeit an improvement over a segfault. [I submitted a version of the patch upstream as part of: http://bugs.python.org/issue9216 for Python 3, which covers some additional API extensions, though that has not been accepted there yet (upstream Python 2.* is now in permanent feature freeze, in lieu of Python 3). RHEL 6.0 has a backport of that work, to Python 2.6. This change was bug 563986, though I don't know if you will be able to read that bug; it's currently marked as only visible to users in the RHEL Public Beta group] Brilliant work, Dave! I was indeed pleased to see Python raise a ValueError, because I found that same segfault in the Ruby interpreter a little while ago (Bug #717709, http://redmine.ruby-lang.org/issues/4944). I started support case 550989 to try to speed up a fix to this. There's a discussion of alternatives in https://bitbucket.org/bbangert/weberror/issue/8/, and a patch at https://bitbucket.org/jaredj/fips-compatibility/raw/0c2eae995825/use-sha256-if-md5-fails. This request was evaluated by Red Hat Product Management for inclusion in the current release of Red Hat Enterprise Linux. Because the affected component is not scheduled to be updated in the current release, Red Hat is unable to address this request at this time. Red Hat invites you to ask your support representative to propose this request, if appropriate, in the next release of Red Hat Enterprise Linux. This bug has to be solved in order to make luci happy in FIPS mode, assigning myself. Upstream conversion, 2nd edition: https://github.com/Pylons/weberror/issues/6 (s/conversion/conversation/ but conversion md5->sha256 also fits) Pull request ("fixing" it the other way around) accepted: [1]. [1] https://github.com/Pylons/weberror/pull/7 Jan, thanks for your work on this. I'm sorry I never got back to you on your original question, but your solution is a good one and does what's needed. Jared, no problem, nice to see no objections :) Since the problem described in this bug report should be resolved in a recent advisory, it has been closed with a resolution of ERRATA. For information on the advisory, and where to find the updated files, follow the link below. If the solution does not work for you, open a new bug report. http://rhn.redhat.com/errata/RHBA-2013-1723.html |