This is an automated email from the ASF dual-hosted git repository.
markt-asf pushed a commit to branch 10.1.x
in repository https://gitbox.apache.org/repos/asf/tomcat.git
The following commit(s) were added to refs/heads/10.1.x by this push:
new f5876b2c2b Ensure namespace attributes are XML escaped in WebDAV
responses
f5876b2c2b is described below
commit f5876b2c2bc6fdabff9863f6730134a1eea99727
Author: Mark Thomas <[email protected]>
AuthorDate: Wed Aug 26 08:00:40 2026 +0100
Ensure namespace attributes are XML escaped in WebDAV responses
---
java/org/apache/catalina/util/XMLWriter.java | 9 +++++----
webapps/docs/changelog.xml | 3 +++
2 files changed, 8 insertions(+), 4 deletions(-)
diff --git a/java/org/apache/catalina/util/XMLWriter.java
b/java/org/apache/catalina/util/XMLWriter.java
index 978cc0cf0d..ca83a76836 100644
--- a/java/org/apache/catalina/util/XMLWriter.java
+++ b/java/org/apache/catalina/util/XMLWriter.java
@@ -144,7 +144,7 @@ public class XMLWriter {
}
if (namespaceInfo != null) {
buffer.append("<").append(namespace).append(":").append(name).append(" xmlns:")
-
.append(namespace).append("=\"").append(namespaceInfo).append("\">");
+
.append(namespace).append("=\"").append(Escape.xml(namespaceInfo)).append("\">");
} else {
buffer.append("<").append(namespace).append(":").append(name).append(">");
}
@@ -161,7 +161,7 @@ public class XMLWriter {
}
if (namespaceInfo != null) {
buffer.append("<").append(namespace).append(":").append(name).append(" xmlns:")
-
.append(namespace).append("=\"").append(namespaceInfo).append("\"/>\n");
+
.append(namespace).append("=\"").append(Escape.xml(namespaceInfo)).append("\"/>\n");
} else {
buffer.append("<").append(namespace).append(":").append(name).append("/>\n");
}
@@ -174,7 +174,7 @@ public class XMLWriter {
if (lastWriteWasOpen) {
buffer.append('\n');
}
- buffer.append("<").append(name).append("
xmlns=\"").append(namespaceInfo).append("\">");
+ buffer.append("<").append(name).append("
xmlns=\"").append(Escape.xml(namespaceInfo)).append("\">");
lastWriteWasOpen = true;
break;
case CLOSING:
@@ -186,7 +186,8 @@ public class XMLWriter {
if (lastWriteWasOpen) {
buffer.append('\n');
}
- buffer.append("<").append(name).append("
xmlns=\"").append(namespaceInfo).append("\"/>\n");
+ buffer.append("<").append(name).append("
xmlns=\"").append(Escape.xml(namespaceInfo))
+ .append("\"/>\n");
lastWriteWasOpen = false;
break;
}
diff --git a/webapps/docs/changelog.xml b/webapps/docs/changelog.xml
index fc6849ed0c..898bd14b86 100644
--- a/webapps/docs/changelog.xml
+++ b/webapps/docs/changelog.xml
@@ -143,6 +143,9 @@
includes not swapping out a session unless the session was created when
activity tracking was enabled. (markt)
</fix>
+ <fix>
+ Ensure namespace attributes are XML escaped in WebDAV responses.
(markt)
+ </fix>
</changelog>
</subsection>
<subsection name="Cluster">
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]