Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[RHPAM-4435] Disable processing of all external resources in XML body… #2800

Merged
merged 1 commit into from
Jul 20, 2022

Conversation

tkobayas
Copy link
Contributor

@tkobayas tkobayas commented Jul 19, 2022

… of REST endpoints

JIRA:
https://issues.redhat.com/browse/RHPAM-4435

for 7.67.x : #2810
for 7.67.x-blue : #2811

How to replicate CI configuration locally?

Build Chain tool does "simple" maven build(s), the builds are just Maven commands, but because the repositories relates and depends on each other and any change in API or class method could affect several of those repositories there is a need to use build-chain tool to handle cross repository builds and be sure that we always use latest version of the code for each repository.

build-chain tool is a build tool which can be used on command line locally or in Github Actions workflow(s), in case you need to change multiple repositories and send multiple dependent pull requests related with a change you can easily reproduce the same build by executing it on Github hosted environment or locally in your development environment. See local execution details to get more information about it.

How to retest this PR or trigger a specific build:
  • a pull request please add comment: Jenkins retest this

  • a full downstream build please add comment: Jenkins run fdb

  • a compile downstream build please add comment: Jenkins run cdb

  • a full production downstream build please add comment: Jenkins execute product fdb

  • an upstream build please add comment: Jenkins run upstream

//Disable XXE
SAXParserFactory spf = SAXParserFactory.newInstance();
spf.setNamespaceAware(true);
spf.setFeature("http://apache.org/xml/features/disallow-doctype-decl", true);
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@tkobayas Would it have sense to allow configuring this value? With default value set to true?
Thinking whether there may be some valid cases for using doctype declarations.

Copy link
Contributor Author

@tkobayas tkobayas Jul 20, 2022

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@sutaakar disallow-doctype-decl is considered as the safest way to prevent XXE (https://cheatsheetseries.owasp.org/cheatsheets/XML_External_Entity_Prevention_Cheat_Sheet.html#general-guidance).

A payload generated by kie-server-client API is the standard payload and it doesn't use DOCTYPE (also DOCTYPE is not used in drools/jbpm documents). So I guess almost no one uses DOCTYPE in kie-server payload.

Even if there is a user who created a payload manually with DOCTYPE, I think we are right to say "we always disallow DOCTYPE in kie-server payload for security reasons". WDYT? @mariofusco @elguardian

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I honestly don't see any reason to send a payload with the DOCTYPE to the kie-server and, also considering the security risks it implies, I'd leave this as it is.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ok, fine for me

@tkobayas
Copy link
Contributor Author

@mariofusco Please merge this PR, thanks!

@mariofusco mariofusco merged commit 7b0aa6c into kiegroup:main Jul 20, 2022
tkobayas added a commit to tkobayas/droolsjbpm-integration that referenced this pull request Jul 25, 2022
mariofusco pushed a commit that referenced this pull request Jul 26, 2022
tkobayas added a commit to tkobayas/droolsjbpm-integration that referenced this pull request Jul 26, 2022
@sonarcloud
Copy link

sonarcloud bot commented Jul 27, 2022

Kudos, SonarCloud Quality Gate passed!    Quality Gate passed

Bug A 0 Bugs
Vulnerability A 0 Vulnerabilities
Security Hotspot A 0 Security Hotspots
Code Smell A 0 Code Smells

No Coverage information No Coverage information
No Duplication information No Duplication information

mariofusco pushed a commit that referenced this pull request Jul 27, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants