├── CVE-2023-4427
├── poc.html
└── poc.js
├── .gitmodules
├── LICENSE
├── CVE-2022-3652
├── lock.diff
└── exp.js
├── README.md
├── 2023-0ctf-half-promise.js
├── CVE-2023-2033.js
├── 2022-hitcon-hole.js
├── CVE-2020-6418.js
├── CVE-2018-17463.js
├── 34C3-v9.js
└── CVE-2022-1310.js
/CVE-2023-4427/poc.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
8 |
9 |
10 |
--------------------------------------------------------------------------------
/.gitmodules:
--------------------------------------------------------------------------------
1 | [submodule "CVE-2024-1939"]
2 | path = CVE-2024-1939
3 | url = https://github.com/rycbar77/CVE-2024-1939
4 | [submodule "CVE-2024-2887"]
5 | path = CVE-2024-2887
6 | url = https://github.com/rycbar77/CVE-2024-2887
7 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | MIT License
2 |
3 | Copyright (c) 2023 r4z77
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
22 |
--------------------------------------------------------------------------------
/CVE-2022-3652/lock.diff:
--------------------------------------------------------------------------------
1 | diff --git a/src/compiler/js-create-lowering.cc b/src/compiler/js-create-lowering.cc
2 | index 4cc0a9a3af4..9cee701a56f 100644
3 | --- a/src/compiler/js-create-lowering.cc
4 | +++ b/src/compiler/js-create-lowering.cc
5 | @@ -25,6 +25,7 @@
6 | #include "src/objects/js-regexp-inl.h"
7 | #include "src/objects/objects-inl.h"
8 |
9 | +volatile intptr_t mylock = 0;
10 | namespace v8 {
11 | namespace internal {
12 | namespace compiler {
13 | @@ -1096,6 +1097,7 @@ Reduction JSCreateLowering::ReduceJSCreateLiteralArrayOrObject(Node* node) {
14 | CreateLiteralParameters const& p = n.Parameters();
15 | Effect effect = n.effect();
16 | Control control = n.control();
17 | + while (mylock != 1 && mylock!=2);
18 | ProcessedFeedback const& feedback =
19 | broker()->GetFeedbackForArrayOrObjectLiteral(p.feedback());
20 | if (!feedback.IsInsufficient()) {
21 | @@ -1824,6 +1826,7 @@ base::Optional JSCreateLowering::TryAllocateFastLiteral(
22 | for (auto const& inobject_field : inobject_fields) {
23 | builder.Store(inobject_field.first, inobject_field.second);
24 | }
25 | + mylock = 2;
26 | return builder.Finish();
27 | }
28 |
29 | diff --git a/src/objects/js-objects-inl.h b/src/objects/js-objects-inl.h
30 | index 0ad9acfce4d..511561b06fa 100644
31 | --- a/src/objects/js-objects-inl.h
32 | +++ b/src/objects/js-objects-inl.h
33 | @@ -26,6 +26,8 @@
34 | // Has to be the last include (doesn't have include guards):
35 | #include "src/objects/object-macros.h"
36 |
37 | +extern volatile intptr_t mylock;
38 | +
39 | namespace v8 {
40 | namespace internal {
41 |
42 | @@ -247,6 +249,10 @@ void JSObject::SetMapAndElements(Handle object, Handle