<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://bugs.webkit.org/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.4.1"
          urlbase="https://bugs.webkit.org/"
          
          maintainer="admin@webkit.org"
>

    <bug>
          <bug_id>12744</bug_id>
          
          <creation_ts>2007-02-12 09:39:38 -0800</creation_ts>
          <short_desc>innerHTML in PRE not properly escaped</short_desc>
          <delta_ts>2014-04-24 16:44:51 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>JavaScriptCore</component>
          <version>312.x</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>DUPLICATE</resolution>
          <dup_id>12735</dup_id>
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>0</everconfirmed>
          <reporter name="Mike Samuel">msamuel</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>mjs</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>24070</commentid>
    <comment_count>0</comment_count>
    <who name="Mike Samuel">msamuel</who>
    <bug_when>2007-02-12 09:39:38 -0800</bug_when>
    <thetext>The attached html page demonstrates what I think is a bug in Safari.  I have only tested with Safari 2.0.4, not the latest version of Webkit.

Firefox and IE both treat the innerHTML of a &lt;PRE&gt; tag as regular html, but Safari seems to group it with style, script, and other tags that contain CDATA in some cases.
Strangely, Firefox and IE treat XMP and PLAINTEXT elements&apos; content as CDATA but Safari does not.

The XMP, LISTING, and PLAINTEXT tags are deprecated, but the PRE tag is not, and its content should not be treated as CDATA.

If it is, then the following naive code:
   document.writeln(myPreTag.innerHTML);
could cause arbitrary script to execute by injecting an onmouseover handler.


Actual Behavior:
The right column of row 6 of the attached page renders as 
  &lt;!DOCTYPE foo PUBLIC &quot;foo&quot;&gt; &lt;foo /&gt;


Expected Behavior:
It should render as
  &amp;lt;DOCTYPE foo PUBLIC &quot;foo&quot;&amp;gt; &amp;lt;foo /&amp;gt;
though escape other characters, such as the double quotes, would be acceptable too.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>24071</commentid>
    <comment_count>1</comment_count>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2007-02-12 09:42:44 -0800</bug_when>
    <thetext>Sounds like a duplicate of Bug 12735.

</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>24072</commentid>
    <comment_count>2</comment_count>
      <attachid>13134</attachid>
    <who name="Mike Samuel">msamuel</who>
    <bug_when>2007-02-12 09:43:18 -0800</bug_when>
    <thetext>Created attachment 13134
html testcase that demonstrates the behavior of innerHTML with various types of elements and text content.

Requires javascript.  See row 6.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>24000</commentid>
    <comment_count>3</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2007-02-12 11:45:49 -0800</bug_when>
    <thetext>

*** This bug has been marked as a duplicate of 12735 ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1003831</commentid>
    <comment_count>4</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2014-04-24 16:44:51 -0700</bug_when>
    <thetext>Moving all JavaScriptGlue bugs to JavaScriptCore. The JavaScriptGlue framework itself is long gone. And most of the more recent bugs put in this component were put there by people who thought this was for some other aspect of “JavaScript glue” and have nothing to do with the actual original reason for the existence of this component, which was an OS-X-only framework named JavaScriptGlue.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>13134</attachid>
            <date>2007-02-12 09:43:18 -0800</date>
            <delta_ts>2007-02-12 09:43:18 -0800</delta_ts>
            <desc>html testcase that demonstrates the behavior of innerHTML with various types of elements and text content.</desc>
            <filename>inner_html_test.html</filename>
            <type>text/html</type>
            <size>2122</size>
            <attacher name="Mike Samuel">msamuel</attacher>
            
              <data encoding="base64">PGh0bWw+CjxoZWFkPgo8dGl0bGU+V2hlbiBpcyBpbm5lciBodG1sIHJhdz88L3RpdGxlPgo8L2hl
YWQ+Cjxib2R5Pgo8cD5UaGlzIHBhZ2UgdGVzdHMgZm9yIHdoaWNoIHRhZ3MnIGlubmVySFRNTCBp
cyB0cmVhdGVkIGFzIHJhdyBjb250ZW50LjwvcD4KPHRhYmxlIGJvcmRlcj0xPgo8dHI+Cjx0aD5v
dXRlckhUTUw8L3RoPgo8dGg+aW5uZXJIVE1MPC90aD4KPHRyPgo8dGQ+PGNvZGUgaWQ9bzE+Jmx0
O2RpdiZndDsoMSA8IDIpICYgMyZsdDsvZGl2Jmd0OzwvY29kZT4KPHRkIGlkPWkxPgo8dHI+Cjx0
ZD48Y29kZSBpZD1vMj4mbHQ7ZGl2Jmd0OygxICZhbXA7bHQ7IDIpICZhbXA7YW1wOyAzJmx0Oy9k
aXYmZ3Q7PC9jb2RlPgo8dGQgaWQ9aTI+Cjx0cj4KPHRkPjxjb2RlIGlkPW8zPiZsdDtwcmUmZ3Q7
KDEgPCAyKSAmIDMmbHQ7L3ByZSZndDs8L2NvZGU+Cjx0ZCBpZD1pMz4KPHRyPgo8dGQ+PGNvZGUg
aWQ9bzQ+Jmx0O3ByZSZndDsoMSAmYW1wO2x0OyAyKSAmYW1wO2FtcDsgMyZsdDsvcHJlJmd0Ozwv
Y29kZT4KPHRkIGlkPWk0Pgo8dHI+Cjx0ZD48Y29kZSBpZD1vNT4mbHQ7ZGl2Jmd0OyZhbXA7bHQ7
IURPQ1RZUEUgZm9vIFBVQkxJQyAiZm9vIiZhbXA7Z3Q7CiZhbXA7bHQ7Zm9vIC8mYW1wO2d0Owom
bHQ7L2RpdiZndDs8L2NvZGU+Cjx0ZCBpZD1pNT4KPHRyPgo8dGQ+PGNvZGUgaWQ9bzY+Jmx0O3By
ZSZndDsmYW1wO2x0OyFET0NUWVBFIGZvbyBQVUJMSUMgImZvbyImYW1wO2d0OwomYW1wO2x0O2Zv
byAvJmFtcDtndDsKJmx0Oy9wcmUmZ3Q7PC9jb2RlPgo8dGQgaWQ9aTY+Cjx0cj4KPHRkPjxjb2Rl
IGlkPW83PiZsdDtzY3JpcHQmZ3Q7KDEgPCAyKSAmIDMmbHQ7L3NjcmlwdCZndDs8L2NvZGU+Cjx0
ZCBpZD1pNz4KPHRyPgo8dGQ+PGNvZGUgaWQ9bzg+Jmx0O3NjcmlwdCZndDsoMSAmYW1wO2x0OyAy
KSAmYW1wO2FtcDsgMyZsdDsvc2NyaXB0Jmd0OzwvY29kZT4KPHRkIGlkPWk4Pgo8dHI+Cjx0ZD48
Y29kZSBpZD1vOT4mbHQ7c3R5bGUmZ3Q7KDEgPCAyKSAmIDMmbHQ7L3N0eWxlJmd0OzwvY29kZT4K
PHRkIGlkPWk5Pgo8dHI+Cjx0ZD48Y29kZSBpZD1vMTA+Jmx0O3N0eWxlJmd0OygxICZhbXA7bHQ7
IDIpICZhbXA7YW1wOyAzJmx0Oy9zdHlsZSZndDs8L2NvZGU+Cjx0ZCBpZD1pMTA+Cjx0cj4KPHRk
Pjxjb2RlIGlkPW8xMT4mbHQ7eG1wJmd0OygxIDwgMikgJiAzJmx0Oy94bXAmZ3Q7PC9jb2RlPgo8
dGQgaWQ9aTExPgo8dHI+Cjx0ZD48Y29kZSBpZD1vMTI+Jmx0O3htcCZndDsoMSAmYW1wO2x0OyAy
KSAmYW1wO2FtcDsgMyZsdDsveG1wJmd0OzwvY29kZT4KPHRkIGlkPWkxMj4KPHRyPgo8dGQ+PGNv
ZGUgaWQ9bzEzPiZsdDtsaXN0aW5nJmd0OygxIDwgMikgJiAzJmx0Oy9saXN0aW5nJmd0OzwvY29k
ZT4KPHRkIGlkPWkxMz4KPHRyPgo8dGQ+PGNvZGUgaWQ9bzE0PiZsdDtsaXN0aW5nJmd0OygxICZh
bXA7bHQ7IDIpICZhbXA7YW1wOyAzJmx0Oy9saXN0aW5nJmd0OzwvY29kZT4KPHRkIGlkPWkxND4K
PHRyPgo8dGQ+PGNvZGUgaWQ9bzE1PiZsdDtwbGFpbnRleHQmZ3Q7KDEgPCAyKSAmIDMmbHQ7L3Bs
YWludGV4dCZndDs8L2NvZGU+Cjx0ZCBpZD1pMTU+Cjx0cj4KPHRkPjxjb2RlIGlkPW8xNj4mbHQ7
cGxhaW50ZXh0Jmd0OygxICZhbXA7bHQ7IDIpICZhbXA7YW1wOyAzJmx0Oy9wbGFpbnRleHQmZ3Q7
PC9jb2RlPgo8dGQgaWQ9aTE2Pgo8L3RhYmxlPgoKPC9ib2R5PgoKPHNjcmlwdCB0eXBlPXRleHQv
amF2YXNjcmlwdD4KZm9yICh2YXIgaSA9IDE7IHRydWU7ICsraSkgewogIHZhciBlbCA9IGRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKCdvJyArIGkpOwogIGlmICghZWwpIHsgYnJlYWs7IH0KICB2YXIg
dGV4dCA9IGVsLmZpcnN0Q2hpbGQubm9kZVZhbHVlOwogIHZhciBub2RlID0gZG9jdW1lbnQuY3Jl
YXRlRWxlbWVudCgnRElWJyk7CiAgbm9kZS5pbm5lckhUTUwgPSB0ZXh0OwogIHZhciBpbm5lckhU
TUwgPSBub2RlLmZpcnN0Q2hpbGQuaW5uZXJIVE1MOwogIGRvY3VtZW50LmdldEVsZW1lbnRCeUlk
KCdpJyArIGkpLmlubmVySFRNTCA9ICc8Y29kZT4nICsKICAgICAgaW5uZXJIVE1MLnJlcGxhY2Uo
LyYvZywgJyZhbXA7JykucmVwbGFjZSgvPC9nLCAnJmx0OycpICsgJzwvY29kZT4nOwp9Cjwvc2Ny
aXB0Pgo8L2h0bWw+Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>