The print module's frontend code builds its info.json request using a hardcoded relative path containing directory traversal sequences (../../), rather than deriving the path from window.location or an existing config value. This causes the exact same literal query string to be sent on every GeoNetwork version which triggers my WAF rules, since the payload is indistinguishable at the request-string level from a real traversal attempt
Located at:
web-ui/src/main/resources/catalog/components/common/map/print/PrintDirective.js
web-ui/src/main/resources/catalog/components/common/map/print/PrintMapDirective.js
Both define
var options = {
printConfigUrl: "../../pdf/info.json?url=..%2F..%2Fpdf",
...
};
My installation is not sitting behind a reverse proxy.
Can we derive the base path from window.location.pathname instead of a hardcoded relative traversal string?
The print module's frontend code builds its info.json request using a hardcoded relative path containing directory traversal sequences (../../), rather than deriving the path from
window.locationor an existing config value. This causes the exact same literal query string to be sent on every GeoNetwork version which triggers my WAF rules, since the payload is indistinguishable at the request-string level from a real traversal attemptLocated at:
web-ui/src/main/resources/catalog/components/common/map/print/PrintDirective.js
web-ui/src/main/resources/catalog/components/common/map/print/PrintMapDirective.js
Both define
My installation is not sitting behind a reverse proxy.
Can we derive the base path from
window.location.pathnameinstead of a hardcoded relative traversal string?