Skip to content

Escape data values in Arrival and Birth clinical-history HTML#708

Open
labkey-martyp wants to merge 1 commit into
release25.7-SNAPSHOTfrom
25.7_fb_history_html_escaping
Open

Escape data values in Arrival and Birth clinical-history HTML#708
labkey-martyp wants to merge 1 commit into
release25.7-SNAPSHOTfrom
25.7_fb_history_html_escaping

Conversation

@labkey-martyp

Copy link
Copy Markdown
Contributor

Rationale

BirthDataSource and ArrivalDataSource concatenated a data-controlled column value (the gender lookup display value and the sourceFacility value, respectively) directly into the clinical-history HTML without escaping. That HTML is serialized to the history row's html property and rendered unescaped in the EHR client, so a crafted value persisted and executed as stored XSS when a user viewed the animal's clinical history.

Related Pull Requests

None.

Changes

  • Route both values through the base-class safeAppend helper, which HTML-escapes via PageFlowUtil.filter, matching every other nirc_ehr data source.
  • Drop the now-redundant manual hasColumn/null guards and the now-unused FieldKey import.

BirthDataSource and ArrivalDataSource concatenated a data-controlled column value (the gender lookup display value and the sourceFacility value, respectively) directly into the clinical-history HTML string without escaping. That string is serialized to the history row's html property and rendered unescaped in the EHR client, so a crafted value persisted and executed as stored XSS when a user viewed the animal's clinical history.

Both now route the value through the base class safeAppend helper, which HTML-escapes via PageFlowUtil.filter, matching every other nirc_ehr data source. The redundant manual hasColumn/null guards and the now-unused FieldKey import were dropped.
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.

2 participants