<?xml version='1.0' encoding='UTF-8'?>
<?xml-stylesheet href="/static/style.xsl" type="text/xsl"?>
<rss xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/" version="2.0">
  <channel>
    <title>Most recent entries from all</title>
    <link>https://vulnerability.circl.lu</link>
    <description>Contains only the most 10 recent entries.</description>
    <docs>http://www.rssboard.org/rss-specification</docs>
    <generator>python-feedgen</generator>
    <language>en</language>
    <lastBuildDate>Mon, 28 Sep 2026 13:33:22 +0000</lastBuildDate>
    <item>
      <title>CVE-2026-67326 — GitPython before 3.1.50 Newline Injection via config_writer section</title>
      <link>https://vulnerability.circl.lu/vuln/cve-2026-67326</link>
      <description>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; gitpython-developers GitPython&lt;/p&gt;
&lt;p&gt;GitPython before 3.1.50 fails to validate newline characters in the section parameter of config_writer(), allowing attackers to inject arbitrary section headers into .git/config. Attackers can inject newlines to create a forged [core] section with hooksPath pointing to attacker-controlled directories, achieving remote code execution when git hooks are triggered.&lt;/p&gt;</description>
      <content:encoded>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; gitpython-developers GitPython&lt;/p&gt;
&lt;p&gt;GitPython before 3.1.50 fails to validate newline characters in the section parameter of config_writer(), allowing attackers to inject arbitrary section headers into .git/config. Attackers can inject newlines to create a forged [core] section with hooksPath pointing to attacker-controlled directories, achieving remote code execution when git hooks are triggered.&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://vulnerability.circl.lu/vuln/cve-2026-67326</guid>
    </item>
    <item>
      <title>GHSA-mv93-w799-cj2w — GitPython: Newline injection in config_writer() section parameter bypasses CVE-2026-42215 patch, enabling RCE via core.…</title>
      <link>https://vulnerability.circl.lu/vuln/ghsa-mv93-w799-cj2w</link>
      <description>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; PyPI: GitPython&lt;/p&gt;
&lt;p&gt;Summary&lt;/p&gt;
&lt;p&gt;The patch for CVE-2026-42215 (GitPython 3.1.49) validates newlines only in the value parameter of set_value(). The section and option parameters are passed to configparser without any newline validation. An attacker who controls the section argument can inject \n to write arbitrary section headers into .git/config, including a forged [core] section with hooksPath pointing to an attacker-controlled directory, leading to RCE when any git hook is triggered.&lt;/p&gt;
&lt;p&gt;Details&lt;/p&gt;
&lt;p&gt;File: git/config.py — GitPython 3.1.49 (latest patched version)&lt;/p&gt;
&lt;p&gt;```python
  def set_value(self, section: str, option: str, value) -&amp;gt; &amp;#34;GitConfigParser&amp;#34;:
      value_str = self._value_to_string_safe(value)   # only value is validated
      if not self.has_section(section):
          self.add_section(section)                    # section not validated
      super().set(section, option, value_str)          # option not validated
      return self
```&lt;/p&gt;
&lt;p&gt;_write() formats section headers as &amp;#34;[%s]\n&amp;#34; % name. When section = &amp;#34;user]\n[core&amp;#34;, this writes [user]\n[core]\n — two valid section headers — into .git/config.&lt;/p&gt;
&lt;p&gt;PoC&lt;/p&gt;
&lt;p&gt;```python
  import git, os, subprocess&lt;/p&gt;
&lt;p&gt;repo = git.Repo.init(&amp;#34;/tmp/bypass_test&amp;#34;)&lt;/p&gt;
&lt;p&gt;os.makedirs(&amp;#34;/tmp/evil_hooks&amp;#34;, exist_ok=True)
  with open(&amp;#34;/tmp/evil_hooks/pre-commit&amp;#34;, &amp;#34;w&amp;#34;) as f:
      f.write(&amp;#34;#!/bin/sh\nid &amp;gt; /tmp/rce_proof.txt\n&amp;#34;)
  os.chmod(&amp;#34;/tmp/evil_hooks/pre-commit&amp;#34;, 0o755)&lt;/p&gt;
&lt;p&gt;# Inject newline into section parameter (not value — already patched)
  with repo.config_writer() as cw:…&lt;/p&gt;</description>
      <content:encoded>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; PyPI: GitPython&lt;/p&gt;
&lt;p&gt;Summary&lt;/p&gt;
&lt;p&gt;The patch for CVE-2026-42215 (GitPython 3.1.49) validates newlines only in the value parameter of set_value(). The section and option parameters are passed to configparser without any newline validation. An attacker who controls the section argument can inject \n to write arbitrary section headers into .git/config, including a forged [core] section with hooksPath pointing to an attacker-controlled directory, leading to RCE when any git hook is triggered.&lt;/p&gt;
&lt;p&gt;Details&lt;/p&gt;
&lt;p&gt;File: git/config.py — GitPython 3.1.49 (latest patched version)&lt;/p&gt;
&lt;p&gt;```python
  def set_value(self, section: str, option: str, value) -&amp;gt; &amp;#34;GitConfigParser&amp;#34;:
      value_str = self._value_to_string_safe(value)   # only value is validated
      if not self.has_section(section):
          self.add_section(section)                    # section not validated
      super().set(section, option, value_str)          # option not validated
      return self
```&lt;/p&gt;
&lt;p&gt;_write() formats section headers as &amp;#34;[%s]\n&amp;#34; % name. When section = &amp;#34;user]\n[core&amp;#34;, this writes [user]\n[core]\n — two valid section headers — into .git/config.&lt;/p&gt;
&lt;p&gt;PoC&lt;/p&gt;
&lt;p&gt;```python
  import git, os, subprocess&lt;/p&gt;
&lt;p&gt;repo = git.Repo.init(&amp;#34;/tmp/bypass_test&amp;#34;)&lt;/p&gt;
&lt;p&gt;os.makedirs(&amp;#34;/tmp/evil_hooks&amp;#34;, exist_ok=True)
  with open(&amp;#34;/tmp/evil_hooks/pre-commit&amp;#34;, &amp;#34;w&amp;#34;) as f:
      f.write(&amp;#34;#!/bin/sh\nid &amp;gt; /tmp/rce_proof.txt\n&amp;#34;)
  os.chmod(&amp;#34;/tmp/evil_hooks/pre-commit&amp;#34;, 0o755)&lt;/p&gt;
&lt;p&gt;# Inject newline into section parameter (not value — already patched)
  with repo.config_writer() as cw:…&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://vulnerability.circl.lu/vuln/ghsa-mv93-w799-cj2w</guid>
    </item>
    <item>
      <title>PYSEC-2026-3980</title>
      <link>https://vulnerability.circl.lu/vuln/pysec-2026-3980</link>
      <description>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; PyPI: gitpython&lt;/p&gt;
&lt;p&gt;GitPython before 3.1.50 fails to validate newline characters in the section parameter of config_writer(), allowing attackers to inject arbitrary section headers into .git/config. Attackers can inject newlines to create a forged [core] section with hooksPath pointing to attacker-controlled directories, achieving remote code execution when git hooks are triggered.&lt;/p&gt;</description>
      <content:encoded>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; PyPI: gitpython&lt;/p&gt;
&lt;p&gt;GitPython before 3.1.50 fails to validate newline characters in the section parameter of config_writer(), allowing attackers to inject arbitrary section headers into .git/config. Attackers can inject newlines to create a forged [core] section with hooksPath pointing to attacker-controlled directories, achieving remote code execution when git hooks are triggered.&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://vulnerability.circl.lu/vuln/pysec-2026-3980</guid>
    </item>
  </channel>
</rss>
