Skip to content

Commit 860e3c8

Browse files
committed
fix(security): fix CVE-2024-39124, CVE-2024-39124, and CVE-2024-39125
Directions for fixing: * `CVE-2024-39124`_ - :ref:`classhelpers (_generic.help.html) are vulnerable to an XSS attack. <CVE-2024-39124>` Requires fixing tracker homes. * `CVE-2024-39125`_ - :ref:`if Referer header is set to a script tag, it will be executed. <CVE-2024-39125>` Fixed in release 2.4.0, directions available for fixing in prior versions. * `CVE-2024-39126`_ - :ref:`PDF, XML and SVG files downloaded from an issue can contain embedded JavaScript which is executed. <CVE-2024-39126>` Fixed in release 2.4.0, directions available for fixing in prior versions. prior to 2.4.0 release this weekend that fixes the last two CVE's.
1 parent 77888a1 commit 860e3c8

33 files changed

+538
-70
lines changed

CHANGES.txt

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,21 @@ python 3.6 or newer (3.4/3.5 might work, but they are not tested).
1616

1717
Fixed:
1818

19+
- CVE-2024-39124 - The classhelpers (_generic.help.html) are
20+
vulnerable to an XSS attack. A specially crafted URL that used
21+
that endpoint would result in running a script embedded in the
22+
URL. (Found/reported by Alec Romano (4rdr), fix/tests John
23+
Rouillard)
24+
- CVE-2024-39125 - If the Referer header is set to a script tag,
25+
it will be executed when the error in the Referer header is
26+
reported. (Found/reported by Alec Romano (4rdr), fix/tests John
27+
Rouillard)
28+
- CVE-2024-39126 - PDF, XML and SVG files attached to an issue can contain
29+
embedded JavaScript. This JavaScript was executed when the file was
30+
accessed. PDF files are now downloaded and not displayed in the
31+
browser. A content security policy is added for all download files
32+
which prevents code execution in SVG files. (Found/reported by Alec
33+
Romano (4rdr), fix/tests John Rouillard)
1934
- issue2551282 - MySQL utf8mb4 issues and
2035
issue2551115 - Use utf8mb4 as a default for MySQL instead of utf8
2136
The default database type and collations have been set to:

doc/CVE.txt

Lines changed: 100 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,100 @@
1+
.. comments:
2+
This file is a temporary way to post CVE notifications before
3+
a release.
4+
5+
Document the CVE fix info in upgrading.txt. Publishing
6+
upgrading.txt would push info on the next release not the current
7+
release.
8+
9+
So we comment out a reference anchor in upgrading.txt and use that
10+
comment to extract the section from upgrading.txt into CVE.txt.
11+
The extracted section gets the same anchor that is in upgrading.txt,
12+
but is is not commented out.
13+
14+
Then we add a summary to the list of CVE's in security.txt using a
15+
:ref: to the anchor. If CVE.txt is part of the build and
16+
upgrading.txt has a commented out anchor, security.txt entries link
17+
to CVE.html in the generated documentation.
18+
19+
In upgrading.txt add a
20+
21+
.. comment: _CVE-2024-39124:
22+
23+
before the section for the CVE (use the real CVE number). At the
24+
end of the CVE section add an end comment:
25+
26+
.. comment: end of CVE include marker
27+
28+
Update security.txt with a :ref: to the CVE section. E.G. a
29+
security.txt references look like:
30+
31+
* `CVE-2024-39124`_ - :ref:`classhelpers (_generic.help.html) are
32+
vulnerable to an XSS attack. <CVE-2024-39124>` Requires fixing
33+
tracker homes.
34+
35+
where <CVE-2024-39124> is the reference. The same reference anchor
36+
is present (commented out) in upgrading.txt. In CVE.txt you
37+
replicate the existing anchor and include to extract the content
38+
section from upgrading.txt. E.G.
39+
40+
.. _CVE-2024-39124:
41+
42+
.. include:: upgrading.txt
43+
:start-after: .. comment: _CVE-2024-39124:
44+
:end-before: .. comment: end of CVE
45+
46+
After building the docs, install docs/security.html and
47+
docs/CVE.html on the web site. Use the security.html URL
48+
on the web site to update the CVE report.
49+
50+
When the release is ready, replace 'comment: _CVE' with '_CVE' in
51+
upgrading.txt. This makes the anchors in upgrading.txt live.
52+
53+
Then disable CVE.txt by removing CVE.txt from contents.txt in the
54+
toctree hidden section. Also add CVE.txt to exclude_patterns in
55+
conf.py.
56+
57+
No change needs to happen to security.txt as it's using a :ref: and
58+
we just changed the location for the ref so sphinx will get the
59+
links correct.
60+
61+
Now build the docs and publish to the web site.
62+
63+
===========
64+
Roundup CVE
65+
===========
66+
67+
This is a list of remediation for CVE's that are not fixed in the
68+
latest release. When the latest release fixes the CVE, see `the
69+
upgrading doc <upgrading.html>`_ for these details.
70+
71+
.. contents::
72+
:local:
73+
:depth: 2
74+
75+
.. _CVE-2024-39124:
76+
77+
.. note::
78+
79+
Prior to the release of Roundup 2.4.0, you can access updated
80+
tracker templates that address CVE-2024-39124 from
81+
`CVE-2024-39124-templates.zip
82+
<../CVE-2024-39124-templates.zip>`_. Download and extract the zip
83+
file to generate a templates subdirectory containing the classic,
84+
minimal and other tracker templates.
85+
86+
.. include:: upgrading.txt
87+
:start-after: .. comment: _CVE-2024-39124:
88+
:end-before: .. comment:
89+
90+
.. _CVE-2024-39125:
91+
92+
.. include:: upgrading.txt
93+
:start-after: .. comment: _CVE-2024-39125:
94+
:end-before: .. comment:
95+
96+
.. _CVE-2024-39126:
97+
98+
.. include:: upgrading.txt
99+
:start-after: .. comment: _CVE-2024-39126:
100+
:end-before: .. comment: end of CVE include marker

doc/acknowledgements.txt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,8 @@ Norbert Schlemmer - docker support
4040
Bharath Kanama, Nikunj Thakkar, Patel Malav - classhelper web
4141
component development.
4242

43+
Alec Romano (4rdr) - identified multiple security issues
44+
4345
2.3
4446
---
4547

doc/announcement.txt

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ release, so make sure to read `docs/upgrading.txt
44
<https://www.roundup-tracker.org/docs/upgrading.html>`_ to
55
bring your tracker up to date.
66

7-
The 67 changes, as usual, include some new features and many
7+
The 79 changes, as usual, include some new features and many
88
bug fixes.
99

1010
Note that you should run ``roundup-admin ... migrate`` to
@@ -22,12 +22,16 @@ You can install it with::
2222

2323
then unpack and test/install from the tarball.
2424

25-
Beta 2 includes a small change to the classic tracker's
26-
classhelper.js to fix a bug found after beta 1 was released.
27-
2825
Among the notable improvements in 2.4.0 from the 2.3.0
2926
release are:
3027

28+
* three CVE's have been fixed. One requires changes to your
29+
tracker's home directory. The other two are fixed by
30+
installing 2.4.0. See
31+
https://www.roundup-tracker.org/docs/security.html for
32+
details and instructions on how to fix these in 2.4.0 and
33+
earlier releases.
34+
3135
* new classhelper component thanks to a team of students
3236
from CS682 at U-Mass Boston. This fixes many issues with
3337
the old classhelper. It is implemented as a web-component
@@ -87,7 +91,7 @@ release are:
8791
* sqlite version 1 and StructuredText support removed.
8892

8993
The file CHANGES.txt has a detailed list of feature
90-
additions and bug fixes (67) for each release. The most
94+
additions and bug fixes for each release. The most
9195
recent changes from there are at the end of this
9296
announcement. Also see the information in doc/upgrading.txt.
9397

doc/security.txt

Lines changed: 40 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,51 @@
11
.. meta::
22
:description:
33
Documentation on how to report security issues with
4-
Roundup. Also index to security related portions in other
5-
Roundup documentation. How to verify distribution using gpg.
4+
Roundup. Index to recent security related (CVE) descriptions
5+
in other Roundup documentation. How to verify distribution
6+
using gpg.
67

78
.. index::
89
single: Reporting Security Issues
10+
single: CVE announcements
911
single: Security Issues, Reporting
12+
single: Security Issues, Remediation
13+
single: Security Issues, CVE announcements
1014

1115

1216
=======================
1317
Roundup Security Issues
1418
=======================
1519

16-
This page documents how to report security issues and verify the
17-
signatures for Roundup releases.
20+
This page documents CVE's fixed starting with version 2.4.0, how to
21+
report security issues, and verify the signatures for Roundup
22+
source release tarballs.
23+
24+
.. contents::
25+
:local:
26+
:depth: 2
27+
28+
CVE Announcements
29+
-----------------
30+
31+
* `CVE-2024-39124`_ - :ref:`classhelpers (_generic.help.html) are
32+
vulnerable to an XSS attack. <CVE-2024-39124>` Requires fixing
33+
tracker homes.
34+
* `CVE-2024-39125`_ - :ref:`if Referer header is set to a script tag,
35+
it will be executed. <CVE-2024-39125>` Fixed in release 2.4.0,
36+
directions available for fixing in prior versions.
37+
* `CVE-2024-39126`_ - :ref:`PDF, XML and SVG files downloaded from an
38+
issue can contain embedded JavaScript which is
39+
executed. <CVE-2024-39126>` Fixed in release 2.4.0, directions
40+
available for fixing in prior versions.
41+
42+
.. _CVE-2024-39124:
43+
https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2024-39124
44+
.. _CVE-2024-39125:
45+
https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2024-39125
46+
.. _CVE-2024-39126:
47+
https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2024-39126
48+
1849

1950
Reporting Security Issues
2051
-------------------------
@@ -88,8 +119,8 @@ Once you have loaded the public key, you need a detached signature for
88119
your release.
89120

90121

91-
Download and Verify with Detached Signature
92-
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
122+
Download Detached Signature and Verify
123+
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
93124

94125
This needs to be done once for each release you wish to verify.
95126

@@ -137,5 +168,6 @@ If something is wrong you will see::
137168
gpg: using RSA key 411E354B5D1AF26125D621221F2DD0CB756A76D8
138169
gpg: BAD signature from "Roundup Team (signing key for roundup releases) <roundup-devel at lists.sourceforge.net>"
139170

140-
**do not use** the tarball if the signature is BAD. Email the
141-
roundup-devel mailing list if you have this happen to you.
171+
**do not use** the tarball if the signature is BAD. Email the mailing
172+
list: roundup-devel at lists.sourceforge.net if you have this happen
173+
to you.

0 commit comments

Comments
 (0)