<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/">
  <channel>
    <title>Anthony Weems</title>
    <link>https://amlw.dev/</link>
    <description>Recent content on Anthony Weems</description>
    <generator>Hugo -- gohugo.io</generator>
    <language>en-us</language>
    <lastBuildDate>Fri, 22 Apr 2022 00:00:00 +0000</lastBuildDate><atom:link href="https://amlw.dev/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>CVE-2021-25746: Ingress-nginx directive injection via annotations</title>
      <link>https://amlw.dev/cve/cve-2021-25746/</link>
      <pubDate>Fri, 22 Apr 2022 00:00:00 +0000</pubDate>
      
      <guid>https://amlw.dev/cve/cve-2021-25746/</guid>
      <description>A user that can create or update ingress objects can use &lt;code&gt;.metadata.annotations&lt;/code&gt;
in an Ingress object (in the &lt;code&gt;networking.k8s.io&lt;/code&gt; or &lt;code&gt;extensions&lt;/code&gt; API group)
to obtain the credentials of the ingress-nginx controller. In the default
configuration, that credential has access to all secrets in the cluster.</description>
    </item>
    
    <item>
      <title>CVE-2022-21496: Improper Implementation of the LDAP URI Specification Allowing for Host Validation Bypasses</title>
      <link>https://amlw.dev/cve/cve-2022-21496/</link>
      <pubDate>Tue, 19 Apr 2022 00:00:00 +0000</pubDate>
      
      <guid>https://amlw.dev/cve/cve-2022-21496/</guid>
      <description>A parser differential between &lt;code&gt;com.sun.jndi.ldap.LdaoURL&lt;/code&gt; and &lt;code&gt;java.net.URI&lt;/code&gt; may lead
to LDAP URI validation bypasses.</description>
    </item>
    
    <item>
      <title>CVE-2022-21701: Istio Privileged Escalation in Kubernetes Gateway API</title>
      <link>https://amlw.dev/cve/cve-2022-21701/</link>
      <pubDate>Tue, 18 Jan 2022 00:00:00 +0000</pubDate>
      
      <guid>https://amlw.dev/cve/cve-2022-21701/</guid>
      <description>Istio version 1.12.0 and 1.12.1 are vulnerable to a privilege escalation
attack. Users who have CREATE permission for
gateways.gateway.networking.k8s.io objects can escalate this privilege to
create other resources that they may not have access to, such as Pod.</description>
    </item>
    
    <item>
      <title>Remote code execution in Managed Anthos Service Mesh control plane</title>
      <link>https://amlw.dev/vrp/203177829/</link>
      <pubDate>Fri, 15 Oct 2021 02:18:00 +0600</pubDate>
      
      <guid>https://amlw.dev/vrp/203177829/</guid>
      <description>Vulnerability Details The following writeup describes a vulnerability that allows remote code execution on the Istio control plane. However, this vulnerability requires high privilege access to the Kubernetes cluster in which Istio is deployed. This would normally be a low / informational risk vulnerability, but in a managed Istio context, it becomes higher risk. To demonstrate, I focused on the Google-managed Anthos Service Mesh (ASM), which runs the Istio control plane in a Google-managed project using a per-product per-project service account (P4SA) that authenticates to the user&amp;rsquo;s GKE cluster.</description>
    </item>
    
    <item>
      <title>GKE Autopilot Node Compromise via Race Condition</title>
      <link>https://amlw.dev/vrp/181521559d/</link>
      <pubDate>Thu, 01 Apr 2021 17:48:00 +0600</pubDate>
      
      <guid>https://amlw.dev/vrp/181521559d/</guid>
      <description>Vulnerability Details GKE Autopilot provides many default security controls to protect the node, including protections against privileged pods and limitations on hostPath volume mounts.
There is a race condition during provisioning of the Autopilot OPA policies that allows an attacker to bypass the intended controls by simply creating their malicious resource while the OPA policies are being provisioned. To demonstrate, use the following steps:
 Download the file deploy.yaml Create an Autopilot cluster While the cluster is being created, run the following commands (replacing $name):  while true; do gcloud container clusters get-credentials $name &amp;amp;&amp;amp; break; done while true; do timeout 1 kubectl apply -f deploy.</description>
    </item>
    
    <item>
      <title>GKE Autopilot Node Compromise via SSH Metadata</title>
      <link>https://amlw.dev/vrp/181521559c/</link>
      <pubDate>Fri, 05 Mar 2021 16:22:00 +0600</pubDate>
      
      <guid>https://amlw.dev/vrp/181521559c/</guid>
      <description>Vulnerability Details GKE Autopilot provides many default security controls to protect the node, including protections against privileged pods and limitations on hostPath volume mounts.
The nodes are configured to pull from the compute metadata SSH keys list. As documented here, a user with compute.projects.setCommonInstanceMetadata can set project-wide SSH keys. To prevent users from simply logging in to the nodes directly, the nodes use an sshd configuration to set all user shells to /sbin/nologin.</description>
    </item>
    
    <item>
      <title>GKE Autopilot Node Compromise via startup-script</title>
      <link>https://amlw.dev/vrp/181521559b/</link>
      <pubDate>Fri, 05 Mar 2021 16:22:00 +0600</pubDate>
      
      <guid>https://amlw.dev/vrp/181521559b/</guid>
      <description>Vulnerability Details GKE Autopilot provides many default security controls to protect the node, including protections against privileged pods and limitations on hostPath volume mounts.
The Autopilot nodes do not have a startup-script defined in their instance metadata. As documented here, a user with compute.projects.setCommonInstanceMetadata can set a project-wide startup script. Since the nodes do not have this attribute set, they will use the project-wide attribute and allow arbitrary code execution from the startup-script.</description>
    </item>
    
    <item>
      <title>GKE Autopilot Node Compromise via local-storage PersistentVolume</title>
      <link>https://amlw.dev/vrp/181521559a/</link>
      <pubDate>Mon, 01 Mar 2021 03:14:00 +0600</pubDate>
      
      <guid>https://amlw.dev/vrp/181521559a/</guid>
      <description>Vulnerability Details GKE Autopilot provides many default security controls to protect the node, including protections against privileged pods and limitations on hostPath volume mounts. However, these security configurations did not prevent PersistentVolumes with the &amp;ldquo;local-storage&amp;rdquo; storage class. The &amp;ldquo;local-storage&amp;rdquo; class can be used to mount files from the node into a pod, similar to hostPath volume mounts. This can be abused to mount sensitive files/directories from the node into a pod and elevate permissions.</description>
    </item>
    
    <item>
      <title>Github Secrets exposed due to RCE in Formatter Action from pull_request_target event</title>
      <link>https://amlw.dev/vrp/175896812/</link>
      <pubDate>Thu, 17 Dec 2020 15:12:00 +0600</pubDate>
      
      <guid>https://amlw.dev/vrp/175896812/</guid>
      <description>Vulnerability Details The formatter action is triggered on pull_request_target events, which run with the context of the base repository and is therefore allowed to mount secrets. However, the formatter action specifically checks out the reference from the Pull Request (which is attacker controlled code). This breaks the security benefits of pull_request_target and exposes secrets to the attack code. This might be acceptable when the action does not allow for code exec.</description>
    </item>
    
    <item>
      <title>Cross-tenant Cloud Function compromise via storage bucket squatting</title>
      <link>https://amlw.dev/vrp/168991979/</link>
      <pubDate>Sun, 20 Sep 2020 01:33:00 +0600</pubDate>
      
      <guid>https://amlw.dev/vrp/168991979/</guid>
      <description>Vulnerability Details Google Cloud Functions accept code from users and build this code into a deployable container via Cloud Build. Before building, the code is uploaded to a cloud storage bucket whose name matches the format gcf-sources-&amp;lt;numeric-project-id&amp;gt;-&amp;lt;location&amp;gt; (e.g. gcf-sources-928967777810-us-central1).
When uploading user provided code to the gcf-sources bucket, the backend does not verify that the bucket owner matches the current project. As the bucket name is not a domain, nor does it contain the word Google, an attacker can register these scratch buckets for any target accounts.</description>
    </item>
    
    <item>
      <title>Remote code execution in import image task via storage bucket squatting</title>
      <link>https://amlw.dev/vrp/168987557/</link>
      <pubDate>Sat, 19 Sep 2020 21:10:00 +0600</pubDate>
      
      <guid>https://amlw.dev/vrp/168987557/</guid>
      <description>Vulnerability Details gcloud has subcommands for importing/exporting compute images. These commands create Cloud Build tasks which launch an instance in your project to perform the import/export task. They use the open source GoogleCloudPlatform/compute-image-tools repo to execute these workflows.
Both workflows use a &amp;ldquo;scratch&amp;rdquo; storage bucket for storing logs, scratch data, and startup scripts. The bucket name formats are below:
export: &amp;quot;&amp;lt;project-id&amp;gt;-daisy-bkt-us&amp;quot; import: &amp;quot;&amp;lt;project-id&amp;gt;-daisy-bkt&amp;quot; If this bucket does not exist, it creates it within the user&amp;rsquo;s project, otherwise, it simply attempts to write to the bucket.</description>
    </item>
    
    <item>
      <title>Site Isolation bypass via Chrome extension</title>
      <link>https://amlw.dev/vrp/145304705/</link>
      <pubDate>Wed, 27 Nov 2019 15:08:00 +0600</pubDate>
      
      <guid>https://amlw.dev/vrp/145304705/</guid>
      <description>Vulnerability Details This vulnerability assumes a compromise of the renderer process as described in this post:
https://groups.google.com/a/chromium.org/forum/#!msg/chromium-extensions/0ei-UCHNm34/IDaXwQhzBAAJ
From a compromised renderer process, we can send a message to the extension background script (chext_backgroundpage.js) and break site isolation by triggering a POST request with credentials to an arbitrary origin, with arbitrary headers, and the ability to read the response.
Steps to reproduce:
 Install the Google Input Tools extension: https://chrome.google.com/webstore/detail/google-input-tools/mclfklkfljcocdinagocijmpgbhab Visit an &amp;ldquo;attacker&amp;rdquo; domain (e.</description>
    </item>
    
    <item>
      <title>CVE-2019-18818: strapi Password Reset Auth Bypass</title>
      <link>https://amlw.dev/cve/cve-2019-18818/</link>
      <pubDate>Thu, 07 Nov 2019 00:00:00 +0000</pubDate>
      
      <guid>https://amlw.dev/cve/cve-2019-18818/</guid>
      <description>strapi before 3.0.0-beta.17.5 mishandles password resets within
default authentication controllers.</description>
    </item>
    
    <item>
      <title>v1 Instance Metadata Service protections bypass</title>
      <link>https://amlw.dev/vrp/135276622/</link>
      <pubDate>Fri, 14 Jun 2019 14:35:00 +0600</pubDate>
      
      <guid>https://amlw.dev/vrp/135276622/</guid>
      <description>The Instance Metadata Service has protections against server-side request
forgery. This vulnerability describes a bypass for these protections due to
URL parsing issues.</description>
    </item>
    
    <item>
      <title>CVE-2019-1003040: Jenkins Script Security plugin sandbox escape</title>
      <link>https://amlw.dev/cve/cve-2019-1003040/</link>
      <pubDate>Thu, 28 Mar 2019 00:00:00 +0000</pubDate>
      
      <guid>https://amlw.dev/cve/cve-2019-1003040/</guid>
      <description>Sandbox projection in the &amp;ldquo;Script Security and Pipeline: Groovy Plugins&amp;rdquo;
could be circumvented through methods supporting type casts and type
coercion. This allowed attackers to invoke constructors for arbitrary
types.</description>
    </item>
    
    <item>
      <title>CVE-2018-2813: MySQL Missing Privilege Check</title>
      <link>https://amlw.dev/cve/cve-2018-2813/</link>
      <pubDate>Fri, 15 Dec 2017 00:00:00 +0000</pubDate>
      
      <guid>https://amlw.dev/cve/cve-2018-2813/</guid>
      <description>Privilege escalation in MySQL server due to a missing file
permission check.</description>
    </item>
    
    <item>
      <title>CVE-2016-7063: Pritunl Privilege Escalation via Path Traversal</title>
      <link>https://amlw.dev/cve/cve-2016-7063/</link>
      <pubDate>Tue, 23 Aug 2016 00:00:00 +0000</pubDate>
      
      <guid>https://amlw.dev/cve/cve-2016-7063/</guid>
      <description>The Pritunl Client service accepted configuration data which was
saved to a file. The service, running as root, would write user specified
data to the user specified path, leading to privilege escalation.</description>
    </item>
    
    <item>
      <title>CVE-2016-7064: Pritunl Invalid Signature Verification</title>
      <link>https://amlw.dev/cve/cve-2016-7064/</link>
      <pubDate>Tue, 23 Aug 2016 00:00:00 +0000</pubDate>
      
      <guid>https://amlw.dev/cve/cve-2016-7064/</guid>
      <description>The Pritunl Client did not validate VPN server certificates before
initiating a VPN connection.</description>
    </item>
    
    <item>
      <title>CVE-2016-4991: Command injection in NodePDF</title>
      <link>https://amlw.dev/cve/cve-2016-4991/</link>
      <pubDate>Tue, 24 May 2016 00:00:00 +0000</pubDate>
      
      <guid>https://amlw.dev/cve/cve-2016-4991/</guid>
      <description>NodePDF passes filenames to child_process.exec(), however, it does not
properly encode all special characters.</description>
    </item>
    
    <item>
      <title>CVE-2015-5238: Stack overflow in libtre5</title>
      <link>https://amlw.dev/cve/cve-2015-5238/</link>
      <pubDate>Wed, 01 Jul 2015 00:00:00 +0000</pubDate>
      
      <guid>https://amlw.dev/cve/cve-2015-5238/</guid>
      <description>A buffer overflow exists in tre_parse() when parsing a literal
(e.g. \x{deadbeef}), used during regular expression compilation.</description>
    </item>
    
  </channel>
</rss>
