<?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>91419</bug_id>
          
          <creation_ts>2012-07-16 13:07:37 -0700</creation_ts>
          <short_desc>[Blackberry] Any webpage can crash webkit via qnx.callExtensionMethod assuming &apos;this&apos; is the &apos;qnx&apos; object</short_desc>
          <delta_ts>2012-07-16 13:45:03 -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>WebKit BlackBerry</component>
          <version>525.x (Safari 3.1)</version>
          <rep_platform>Other</rep_platform>
          <op_sys>Other</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc>javascript:qnx.callExtensionMethod.apply(window, []); </bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Benjamin Meyer">ben</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>mifenton</cc>
    
    <cc>tonikitoo</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>yong.li.webkit</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>670595</commentid>
    <comment_count>0</comment_count>
    <who name="Benjamin Meyer">ben</who>
    <bug_when>2012-07-16 13:07:37 -0700</bug_when>
    <thetext>Run the following in inspector to crash WebKit

qnx.callExtensionMethod.apply(window, []);

In the c++ that handles the function it assumes that when callExtensionMethod is called that &apos;this&apos; is
the object &apos;qnx&apos;.  The qnx object has a hidden variable that the code casts and uses, but when &apos;this&apos; is not qnx such as the example this will cause a
crash.  Any website can insert the above JavaScript to cause the crash.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>670601</commentid>
    <comment_count>1</comment_count>
      <attachid>152601</attachid>
    <who name="Benjamin Meyer">ben</who>
    <bug_when>2012-07-16 13:12:50 -0700</bug_when>
    <thetext>Created attachment 152601
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>670605</commentid>
    <comment_count>2</comment_count>
    <who name="Yong Li">yong.li.webkit</who>
    <bug_when>2012-07-16 13:22:18 -0700</bug_when>
    <thetext>Are we sure it is null? If so it shouldn&apos;t be security issue. But the change log makes me think it could be a non-zero pointer.

Then the patch won&apos;t fix it. We could compare the vptr.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>670606</commentid>
    <comment_count>3</comment_count>
    <who name="Benjamin Meyer">ben</who>
    <bug_when>2012-07-16 13:23:53 -0700</bug_when>
    <thetext>It is null, I have a test page for this and confirmed it works.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>670610</commentid>
    <comment_count>4</comment_count>
    <who name="Benjamin Meyer">ben</who>
    <bug_when>2012-07-16 13:28:01 -0700</bug_when>
    <thetext>Edit: to be more clear in JSObjectRef.cpp JSObjectGetPrivate() will return 0 when the object is not a JSCallbackObject so a simple check is good enough to stop the crash.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>670611</commentid>
    <comment_count>5</comment_count>
    <who name="Yong Li">yong.li.webkit</who>
    <bug_when>2012-07-16 13:29:07 -0700</bug_when>
    <thetext>changing back from security</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>670628</commentid>
    <comment_count>6</comment_count>
      <attachid>152601</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-07-16 13:44:59 -0700</bug_when>
    <thetext>Comment on attachment 152601
patch

Clearing flags on attachment: 152601

Committed r122757: &lt;http://trac.webkit.org/changeset/122757&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>670630</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-07-16 13:45:03 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>152601</attachid>
            <date>2012-07-16 13:12:50 -0700</date>
            <delta_ts>2012-07-16 13:44:58 -0700</delta_ts>
            <desc>patch</desc>
            <filename>0001-2012-07-16-Benjamin-C-Meyer-bmeyer-rim.com.patch</filename>
            <type>text/plain</type>
            <size>3134</size>
            <attacher name="Benjamin Meyer">ben</attacher>
            
              <data encoding="base64">RnJvbSA4OGZlZGNkOWU4ZDI5ZDRjNWM2ODA0YWNkYjQzNGMyYjJhZDhkYzdmIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBCZW5qYW1pbiBDIE1leWVyIDxibWV5ZXJAcmltLmNvbT4KRGF0
ZTogTW9uLCAxNiBKdWwgMjAxMiAxNjoxMjozNyAtMDQwMApTdWJqZWN0OiBbUEFUQ0hdIDIwMTIt
MDctMTYgIEJlbmphbWluIEMgTWV5ZXIgIDxibWV5ZXJAcmltLmNvbT4KCiAgICAgICAgQW55IHdl
YnBhZ2UgY2FuIGNyYXNoIHdlYmtpdCB2aWEgcW54LmNhbGxFeHRlbnNpb25NZXRob2QgYXNzdW1p
bmcgJ3RoaXMnIGlzIHRoZSAncW54JyBvYmplY3QuCiAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTkxNDE5CgogICAgICAgIFJ1biB0aGUgZm9sbG93aW5nIGlu
IGluc3BlY3RvciB0byBjcmFzaCBXZWJLaXQKCiAgICAgICAgcW54LmNhbGxFeHRlbnNpb25NZXRo
b2QuYXBwbHkod2luZG93LCBbXSk7CgogICAgICAgIEluIHRoZSBjKysgdGhhdCBoYW5kbGVzIHRo
ZSBmdW5jdGlvbiBpdCBhc3N1bWVzIHRoYXQgd2hlbiBjYWxsRXh0ZW5zaW9uTWV0aG9kCiAgICAg
ICAgaXMgY2FsbGVkIHRoYXQgJ3RoaXMnIGlzIHRoZSBvYmplY3QgJ3FueCcuICBUaGUgcW54IG9i
amVjdCBoYXMgYSBoaWRkZW4KICAgICAgICB2YXJpYWJsZSB0aGF0IHRoZSBjb2RlIGNhc3RzIGFu
ZCB1c2VzLCBidXQgd2hlbiAndGhpcycgaXMgbm90IHFueCBzdWNoIGFzIHRoZQogICAgICAgIGV4
YW1wbGUgdGhpcyB3aWxsIGNhdXNlIGEgY3Jhc2guICBBbnkgd2Vic2l0ZSBjYW4gaW5zZXJ0IHRo
ZSBhYm92ZSBKYXZhU2NyaXB0CiAgICAgICAgdG8gY2F1c2UgdGhlIGNyYXNoLgoKICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KCiAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9DbGll
bnRFeHRlbnNpb24uY3BwOgogICAgICAgIChjbGllbnRFeHRlbnNpb25NZXRob2QpOgotLS0KIFNv
dXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgIHwgICAyMCAr
KysrKysrKysrKysrKysrKysrKwogLi4uL2JsYWNrYmVycnkvV2ViQ29yZVN1cHBvcnQvQ2xpZW50
RXh0ZW5zaW9uLmNwcCAgfCAgICA0ICsrKy0KIDIgZmlsZXMgY2hhbmdlZCwgMjMgaW5zZXJ0aW9u
cygrKSwgMSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVy
cnkvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0NoYW5nZUxvZwppbmRleCA4
MjM4YzBmLi41MGNjNzNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQ2hh
bmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSwyMyBAQAorMjAxMi0wNy0xNiAgQmVuamFtaW4gQyBNZXllciAgPGJtZXllckByaW0uY29tPgor
CisgICAgICAgIEFueSB3ZWJwYWdlIGNhbiBjcmFzaCB3ZWJraXQgdmlhIHFueC5jYWxsRXh0ZW5z
aW9uTWV0aG9kIGFzc3VtaW5nICd0aGlzJyBpcyB0aGUgJ3FueCcgb2JqZWN0LgorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTE0MTkKKworICAgICAgICBS
dW4gdGhlIGZvbGxvd2luZyBpbiBpbnNwZWN0b3IgdG8gY3Jhc2ggV2ViS2l0CisKKyAgICAgICAg
cW54LmNhbGxFeHRlbnNpb25NZXRob2QuYXBwbHkod2luZG93LCBbXSk7CisKKyAgICAgICAgSW4g
dGhlIGMrKyB0aGF0IGhhbmRsZXMgdGhlIGZ1bmN0aW9uIGl0IGFzc3VtZXMgdGhhdCB3aGVuIGNh
bGxFeHRlbnNpb25NZXRob2QKKyAgICAgICAgaXMgY2FsbGVkIHRoYXQgJ3RoaXMnIGlzIHRoZSBv
YmplY3QgJ3FueCcuICBUaGUgcW54IG9iamVjdCBoYXMgYSBoaWRkZW4KKyAgICAgICAgdmFyaWFi
bGUgdGhhdCB0aGUgY29kZSBjYXN0cyBhbmQgdXNlcywgYnV0IHdoZW4gJ3RoaXMnIGlzIG5vdCBx
bnggc3VjaCBhcyB0aGUKKyAgICAgICAgZXhhbXBsZSB0aGlzIHdpbGwgY2F1c2UgYSBjcmFzaC4g
IEFueSB3ZWJzaXRlIGNhbiBpbnNlcnQgdGhlIGFib3ZlIEphdmFTY3JpcHQKKyAgICAgICAgdG8g
Y2F1c2UgdGhlIGNyYXNoLgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvQ2xpZW50RXh0ZW5zaW9uLmNwcDoKKyAgICAgICAg
KGNsaWVudEV4dGVuc2lvbk1ldGhvZCk6CisKIDIwMTItMDctMTMgIEphY2t5IEppYW5nICA8emhh
amlhbmdAcmltLmNvbT4KIAogICAgICAgICBbQmxhY2tCZXJyeV0gcmVzZXRCaXRtYXBab29tU2Nh
bGUgY2FsbGVkIHdoaWxlIHpvb21pbmcgcHJldmVudGluZyBwaW5jaCB6b29tCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViQ29yZVN1cHBvcnQvQ2xpZW50RXh0ZW5zaW9u
LmNwcCBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJDb3JlU3VwcG9ydC9DbGllbnRFeHRl
bnNpb24uY3BwCmluZGV4IGQzZDdiNjIuLmJjZDdiOTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvYmxhY2tiZXJyeS9XZWJDb3JlU3VwcG9ydC9DbGllbnRFeHRlbnNpb24uY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJDb3JlU3VwcG9ydC9DbGllbnRFeHRlbnNpb24uY3Bw
CkBAIC01MCw3ICs1MCw5IEBAIHN0YXRpYyBKU1ZhbHVlUmVmIGNsaWVudEV4dGVuc2lvbk1ldGhv
ZCgKICAgICB9CiAKICAgICBXZWJQYWdlQ2xpZW50KiBjbGllbnQgPSByZWludGVycHJldF9jYXN0
PFdlYlBhZ2VDbGllbnQqPihKU09iamVjdEdldFByaXZhdGUodGhpc09iamVjdCkpOwotICAgIHN0
cmluZyByZXRWYWwgPSBjbGllbnQtPmludm9rZUNsaWVudEphdmFTY3JpcHRDYWxsYmFjayhzdHJB
cmdzLCBhcmd1bWVudENvdW50KS51dGY4KCk7CisgICAgc3RyaW5nIHJldFZhbDsKKyAgICBpZiAo
Y2xpZW50KQorICAgICAgICByZXRWYWwgPSBjbGllbnQtPmludm9rZUNsaWVudEphdmFTY3JpcHRD
YWxsYmFjayhzdHJBcmdzLCBhcmd1bWVudENvdW50KS51dGY4KCk7CiAgICAgaWYgKCFyZXRWYWwu
ZW1wdHkoKSkKICAgICAgICAganNSZXRWYWwgPSBKU1ZhbHVlTWFrZVN0cmluZyhjdHgsIEpTU3Ry
aW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKHJldFZhbC5jX3N0cigpKSk7CiAKLS0gCjEuNy4xCgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>