This is an automated email from the ASF dual-hosted git repository. markt pushed a commit to branch main in repository https://gitbox.apache.org/repos/asf/tomcat-training.git
The following commit(s) were added to refs/heads/main by this push: new ec1eae8 Add presentation based on CVe-2024-50379 ec1eae8 is described below commit ec1eae8490d3cc7926ae75446ddfbcb1821ad329 Author: Mark Thomas <ma...@apache.org> AuthorDate: Tue Feb 11 16:03:57 2025 +0000 Add presentation based on CVe-2024-50379 --- index.html | 1 + modules/cve-2024-50379.html | 212 +++++++++++++++++++++ .../cve-handling-good-bad-ugly.html | 55 +++--- 3 files changed, 238 insertions(+), 30 deletions(-) diff --git a/index.html b/index.html index d850dbb..a76fa48 100644 --- a/index.html +++ b/index.html @@ -40,6 +40,7 @@ <ul> <li><a href="presentations/tomcat-11-jakarta-ee-11.html">Tomcat 11 and Jakarta EE 11</a></li> <li><a href="presentations/tomcat-11-preview.html">Tomcat 11 Preview</a></li> + <li><a href="presentations/cve-handling-good-bad-ugly.html">CVE handling - the good, the bad & the ugly</a></li> </ul> </section> <section> diff --git a/modules/cve-2024-50379.html b/modules/cve-2024-50379.html new file mode 100644 index 0000000..f38b7d1 --- /dev/null +++ b/modules/cve-2024-50379.html @@ -0,0 +1,212 @@ +<!-- + Licensed to the Apache Software Foundation (ASF) under one or more + contributor license agreements. See the NOTICE file distributed with + this work for additional information regarding copyright ownership. + The ASF licenses this file to You under the Apache License, Version 2.0 + (the "License"); you may not use this file except in compliance with + the License. You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +--> +<section data-background-image="../images/tomcat.svg" + data-background-size="contain" + data-background-opacity="0.15"> + <h3>Agenda</h3> + <p>Background</p> + <p>CVE-2024-50379<p> + <p>CVE-2024-56337</p> + <p>Reflections</p> + <p>Questions</p> +</section> +<section data-background-image="../images/tomcat.svg" + data-background-size="contain" + data-background-opacity="0.15"> + <h3>Background</h3> + <p>URLs are case sensitive</p> + <p>URLs are very often mapped to file systems</p> + <p>Windows and MacOS file systems are (usually) case insensitive</p> + <p>Need to be able to differentiate between a request for a.Jsp and a.jsp</p> + <p>File.getCanonicalPath()</p> +</section> +<section data-background-image="../images/tomcat.svg" + data-background-size="contain" + data-background-opacity="0.15"> + <h3>Note</h3> + <p>Summaries of the much longer emails</p> + <p>Some emails have been skipped</p> +</section> +<section data-background-image="../images/tomcat.svg" + data-background-size="contain" + data-background-opacity="0.15"> + <h3>Friday 18 October 2024</h3> + <p align="left">10:51 "I have found an RCE. How do I report it?" Also mentions HackerOne bounty.</p> + <p align="right">13:19 "Here. Plain text."</p> + <p align="left">14:28 "PoC and 30MB mp3"</p> +</section> +<section data-background-image="../images/tomcat.svg" + data-background-size="contain" + data-background-opacity="0.15"> + <h3>Summary of report</h3> + <p>Enable write in Default Servlet</p> + <p>Enable the CORS Filter</p> + <p>Windows only</p> + <p>PUT a.Jsp</p> + <p>DELETE a.Jsp</p> + <p>GET a.jsp</p> + <p>Repeat a lot until GET a.jsp returns the uploaded file</p> +</section> +<section data-background-image="../images/tomcat.svg" + data-background-size="contain" + data-background-opacity="0.15"> + <h3>First thoughts</h3> + <p>CORS?</p> + <p>Tomcat 8 is out of scope</p> + <p>Tomcat 11 onwards not affected?</p> + <p>Need full configuration details</p> + <p>The PoC isn't consistent with the video</p> + <p>It isn't clear what is going on here</p> + <p>Insecure configuration?</p> +</section> +<section data-background-image="../images/tomcat.svg" + data-background-size="contain" + data-background-opacity="0.15"> + <h3>Monday 21 October 2024</h3> + <p align="left">03:38 "MacOS also affected"</p> + <p align="right">08:17 "Clarification questions"</p> + <p align="right">15:24 "Konstantin finds a TOCTOU issue in the canonical file name check"</p> +</section> +<section data-background-image="../images/tomcat.svg" + data-background-size="contain" + data-background-opacity="0.15"> + <h3>Wednesday 23 October 2024</h3> + <p align="right">14:43 "Confirm RCE. Allocate CVE."</p> + <p align="right">"How do we fix this?"</p> + <p align="right">"..."</p> +</section> +<section data-background-image="../images/tomcat.svg" + data-background-size="contain" + data-background-opacity="0.15"> + <h3>Friday 25 October 2024</h3> + <p align="right">"Konstantin suggests File.list()"</p> +</section> +<section data-background-image="../images/tomcat.svg" + data-background-size="contain" + data-background-opacity="0.15"> + <h3>Monday 28 October 2024</h3> + <p align="left">05:30 "Additional information including a PoC in python"</p> + <p align="right">"File.list() is too slow"</p> + <p align="right">"..."</p> + <p align="right">"Locking"</p> +</section> +<section data-background-image="../images/tomcat.svg" + data-background-size="contain" + data-background-opacity="0.15"> + <h3>Tuesday 29 October 2024</h3> + <p align="right">Can't reproduce issue with Python PoC</p> + <p align="right">But it does highlight cache issues</p> + <p align="right">Use the fix for this to mask the CVE fix?</p> +</section> +<section data-background-image="../images/tomcat.svg" + data-background-size="contain" + data-background-opacity="0.15"> + <h3>Wednesday 30 October 2024</h3> + <p align="right">Performance numbers for the locking solution</p> +</section> +<section data-background-image="../images/tomcat.svg" + data-background-size="contain" + data-background-opacity="0.15"> + <h3>Monday 4 November 2024</h3> + <p align="right">16:07 "Please test this fix."</p> + <p align="left">18:09 "It isn't fixed."</p> +</section> +<section data-background-image="../images/tomcat.svg" + data-background-size="contain" + data-background-opacity="0.15"> + <h3>Saturday 9 November 2024</h3> + <p>Tomcat 9.0.97 released</p> + <p>Tomcat 10.1.31 released</p> +</section> +<section data-background-image="../images/tomcat.svg" + data-background-size="contain" + data-background-opacity="0.15"> + <h3>Sunday 10 November 2024</h3> + <p>Tomcat 11.0.2 released</p> +</section> +<section data-background-image="../images/tomcat.svg" + data-background-size="contain" + data-background-opacity="0.15"> + <h3>Fri 15 November 2024</h3> + <p align="right">15:07 "I messed up the locking fix."</p> +</section> +<section data-background-image="../images/tomcat.svg" + data-background-size="contain" + data-background-opacity="0.15"> + <h3>Mon 18 November 2024</h3> + <p align="right">09:39 "Please re-test."</p> +</section> +<section data-background-image="../images/tomcat.svg" + data-background-size="contain" + data-background-opacity="0.15"> + <h3>Tue 19 November 2024</h3> + <p align="left">07:22 "Fix confirmed."</p> +</section> +<section data-background-image="../images/tomcat.svg" + data-background-size="contain" + data-background-opacity="0.15"> + <h3>Monday 9 December 2024</h3> + <p>Tomcat 9.0.98 released</p> + <p>Tomcat 10.1.34 released</p> + <p>Tomcat 11.0.2 released</p> +</section> +<section data-background-image="../images/tomcat.svg" + data-background-size="contain" + data-background-opacity="0.15"> + <h3>Tue 17 December 2024</h3> + <p align="right">12:26 "Announce CVE-2024-50379"</p> + <p align="left">18:42 "CVE-2024-50379 is not fixed"</p> +</section> +<section data-background-image="../images/tomcat.svg" + data-background-size="contain" + data-background-opacity="0.15"> + <h3>Wed 18 December 2024</h3> + <p align="right">07:28 "Huh? What changed?"</p> + <p>Jonathan Gallimore (TomEE) provides a PoC that does reproduce the issue</p> + <p align="right">19:28 "Does disabling caching have an impact?"</p> +</section> +<section data-background-image="../images/tomcat.svg" + data-background-size="contain" + data-background-opacity="0.15"> + <h3>Thursday 19 December 2024</h3> + <p align="left">05:29 "Disabling caching has no effect"</p> + <p>I am able to reproduce the issue locally</p> + <p>Jonathan Gallimore continues to help us test different scenarios</p> + <p>Java 17 onwards not affected</p> +</section> +<section data-background-image="../images/tomcat.svg" + data-background-size="contain" + data-background-opacity="0.15"> + <h3>Thursday 19 December 2024</h3> + <p align="left">14:25 "Found it. Java has a cache for canonical file names"</p> +</section> +<section data-background-image="../images/tomcat.svg" + data-background-size="contain" + data-background-opacity="0.15"> + <h3>Friday 20 December 2024</h3> + <p align="right">15:17 Announce CVE-2024-56338</p> + <p align="right">Use Java system properties to disable the cache</p> + <p align="right">Will try and enforce this in a future Tomcat version</p> +</section> +<section data-background-image="../images/tomcat.svg" + data-background-size="contain" + data-background-opacity="0.15"> + <h3>Reflections</h3> + <p>Good: The overall process</p> + <p>Bad: Ignoring instincts</p> + <p>Ugly: Not fixing it the first time</p> +</section> \ No newline at end of file diff --git a/index.html b/presentations/cve-handling-good-bad-ugly.html similarity index 53% copy from index.html copy to presentations/cve-handling-good-bad-ugly.html index d850dbb..d332d20 100644 --- a/index.html +++ b/presentations/cve-handling-good-bad-ugly.html @@ -15,49 +15,39 @@ limitations under the License. --> <!doctype html> -<html lang="en"> +<html> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no"> - <title>Tomcat Training</title> + <title>Tomcat 11 and Jakarta EE</title> - <link rel="stylesheet" href="dist/reset.css"> - <link rel="stylesheet" href="dist/reveal.css"> - <link rel="stylesheet" href="dist/theme/black.css"> + <link rel="stylesheet" href="../dist/reset.css"> + <link rel="stylesheet" href="../dist/reveal.css"> + <link rel="stylesheet" href="../dist/theme/white.css"> <!-- Theme used for syntax highlighted code --> - <link rel="stylesheet" href="plugin/highlight/monokai.css"> + <link rel="stylesheet" href="../plugin/highlight/monokai.css"> + </head> <body> <div class="reveal"> <div class="slides"> - <section> - <h1>Tomcat presentations</h1> - </section> - <section> - <p>The following presentations are currently available</p> - <ul> - <li><a href="presentations/tomcat-11-jakarta-ee-11.html">Tomcat 11 and Jakarta EE 11</a></li> - <li><a href="presentations/tomcat-11-preview.html">Tomcat 11 Preview</a></li> - </ul> - </section> - <section> - <h1>Tomcat training</h1> - </section> - <section> - <p>The following training courses are currently available</p> - <ul> - <li><a href="courses/tomcat-for-administrators.html">Tomcat for Administrators</a></li> - </ul> + <section data-background-image="../images/tomcat.svg" + data-background-size="contain" + data-background-opacity="0.15"> + <h1>Responding to an RCE report<br/>The good, the bad and the ugly</h1> </section> + <section data-external-replace="../modules/intro-markt.html"> </section> + <section data-external-replace="../modules/cve-2024-50379.html"> </section> + <section data-external-replace="../modules/wrap-up-presentation.html"> </section> </div> </div> - <script src="dist/reveal.js"></script> - <script src="plugin/notes/notes.js"></script> - <script src="plugin/markdown/markdown.js"></script> - <script src="plugin/highlight/highlight.js"></script> + <script src="../dist/reveal.js"></script> + <script src="../plugin/notes/notes.js"></script> + <script src="../plugin/markdown/markdown.js"></script> + <script src="../plugin/highlight/highlight.js"></script> <script> // More info about initialization & config: // - https://revealjs.com/initialization/ @@ -66,8 +56,13 @@ hash: true, // Learn about plugins: https://revealjs.com/plugins/ - plugins: [ RevealMarkdown, RevealHighlight, RevealNotes ] - }); + plugins: [ RevealMarkdown, RevealHighlight, RevealNotes ], + + width: 1200, + dependencies: [ + // reveal_external to allow composition from multiple files + { src: '../plugin/external/external.js', condition: function() { return !!document.querySelector( '[data-external],[data-external-replace]' ); } } + ] }); </script> </body> </html> --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org