Ticket #6642 (closed defect (bug): fixed)

Opened 4 years ago

Last modified 2 years ago

Commenters can break page validation via HTML comments

Reported by: schiller Owned by: anonymous
Priority: normal Milestone: 2.6.1
Component: General Version: 2.6
Severity: normal Keywords: has-patch 2nd-opinion
Cc:

Description

As per  http://www.w3.org/TR/REC-xml/#sec-comments, XML does not like two dashes (--) in comments, nor does it like comments ending in --->. This should be fixed in kses

Attachments

bug6642.patch Download (475 bytes) - added by schiller 4 years ago.
Patch for kses, prevents adjacent hyphens in a HTML/XML comment

Change History

Patch for kses, prevents adjacent hyphens in a HTML/XML comment

  • Cc rubys@… added

wptexturize() converts a double dash into –, so no problems there.

Can you clarify this? When is wptexturize() called? Is this something that has changed since WP 2.3.3?

  • Status changed from new to closed
  • Resolution set to worksforme
  • Milestone 2.7 deleted

No, wptexturize() has been around since at least version 1.5. All comments and posts are run through it by default before being displayed.

Log out and make a comment like this on your blog:

This is a -- test comment over here --->

It will display at this valid XHTML:

This is a — test comment over here —>

Closing as worksforme.

Oh, and to answer your "When is wptexturize() called?" question, look at /wp-includes/default-filters.php. You'll find this line in it:

add_filter('comment_text', 'wptexturize');

Actually I had already confirmed this was indeed a problem - someone was logged out and made the following comment on my WP 2.3.3 blog:

Comment: <!-- foo -- bar -->

And it resulted in a Yellow Page of Death when rendered as XHTML. That's why I dug through and came up with this 2-line patch for kses.

Note that the comment stays hidden i.e. it actually stays a HTML comment it doesn't get escaped to be

Comment: &lt;!-- foo -- bar --&gt;

I do not have the "WordPress should correct invalidly nested XHTML automatically" checkbox checked (Options > Writing). Can you describe the settings on your blog that relate to translating markup?

  • Keywords needs-patch added; xhtml, kses removed
  • Status changed from closed to reopened
  • Version set to 2.5
  • Resolution worksforme deleted
  • Milestone set to 2.7

Okay, well that's an entirely different issue. ;)

Confirmed that no-access users can post HTML comments, something that they shouldn't be able to do IMO. It's specifically allowed in the code though, so then I guess we should just make sure it doesn't break validation.

  • Summary changed from kses should not allow multiple hyphens in comments to Commenters can break page validation via HTML comments

comment:9 follow-up: ↓ 10   schiller4 years ago

Ok, thanks - I should have clarified between the two different types of comments ;)

I did attach a patch for this bug - does it need to get reviewed or something? (Just curious about your addition of the 'needs-patch' keyword)

comment:10 in reply to: ↑ 9   Viper007Bond4 years ago

  • Keywords has-patch 2nd-opinion added; needs-patch removed

Replying to schiller:

I did attach a patch for this bug - does it need to get reviewed or something? (Just curious about your addition of the 'needs-patch' keyword)

Sorry, force of habit and I thought your patch merely removed all double dashes. It was in the wee hours of the morning and I didn't realize your patch was specifically targeted at HTML comments. My apologies.

Switched to the "has-patch" tag. :)

  • Status changed from reopened to closed
  • Resolution set to fixed

(In [8382]) Prevent adjacent hyphens in a HTML/XML comment. Fixes #6642 for trunk. Props schiller.

  • Status changed from closed to reopened
  • Resolution fixed deleted
  • Milestone changed from 2.7 to 2.6.1

Re-open for 2.6.1

  • Status changed from reopened to closed
  • Resolution set to fixed

(In [8383]) Prevent adjacent hyphens in a HTML/XML comment. Fixes #6642 for 2.6.1. Props schiller.

  • Status changed from closed to reopened
  • Version changed from 2.5 to 2.9.1
  • Resolution fixed deleted

This appears broken again in WP 2.9.1 (though I did verify my fix appears in kses.php still). No idea why it's happening.

  • Status changed from reopened to closed
  • Version changed from 2.9.1 to 2.6
  • Resolution set to fixed

Since this ticket was marked as fixed for a shipped milestone, please open a new ticket and reference this one.

  • Cc rubys@… removed
Note: See TracTickets for help on using tickets.