<?xml version='1.0' encoding='UTF-8'?>
<?xml-stylesheet href="/static/style.xsl" type="text/xsl"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
  <id>https://cve.radiocsirt.org/rss/recent/all/10</id>
  <title>Most recent entries from all</title>
  <updated>2026-10-07T03:46:31.170300+00:00</updated>
  <author>
    <name>Vulnerability-Lookup</name>
    <email>csirt@opendfir.org</email>
  </author>
  <link href="https://cve.radiocsirt.org" rel="alternate"/>
  <generator uri="https://lkiesow.github.io/python-feedgen" version="1.0.0">python-feedgen</generator>
  <subtitle>Contains only the most 10 recent entries.</subtitle>
  <entry>
    <id>https://cve.radiocsirt.org/vuln/euvd-2026-321458</id>
    <title>EUVD-2026-321458</title>
    <updated>2026-10-07T03:46:31.854584+00:00</updated>
    <content>EUVD-2026-321458</content>
    <link href="https://cve.radiocsirt.org/vuln/euvd-2026-321458"/>
  </entry>
  <entry>
    <id>https://cve.radiocsirt.org/vuln/fkie_cve-2026-48126</id>
    <title>fkie_cve-2026-48126</title>
    <updated>2026-10-07T03:46:31.854623+00:00</updated>
    <content type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml">
        <p>Algernon is a small self-contained pure-Go web server. Prior to 1.17.8, when algernon is started with --domain (or --letsencrypt, which silently turns on --domain at engine/flags.go:372), the request handler resolves the served directory by joining the configured --dir with the value of the client-supplied Host header. The join is performed by filepath.Join with no validation, so a Host: .. header walks one level above the document root. Subsequent file resolution then exposes everything in that parent directory — arbitrary file read, full directory listing, and, if any .lua file is present, server-side Lua execution. This vulnerability is fixed in 1.17.8.</p>
      </div>
    </content>
    <link href="https://cve.radiocsirt.org/vuln/fkie_cve-2026-48126"/>
  </entry>
  <entry>
    <id>https://cve.radiocsirt.org/vuln/ghsa-jc3j-x6pg-4hmv</id>
    <title>GHSA-jc3j-x6pg-4hmv — Algernon: Host header path traversal in --domain mode reads files and runs Lua from parent dir</title>
    <updated>2026-10-07T03:46:31.854668+00:00</updated>
    <content type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml"><p><strong>Affected:</strong> Go: github.com/xyproto/algernon</p>
<p>### Summary</p>
<p>When algernon is started with `--domain` (or `--letsencrypt`, which silently turns on `--domain` at `engine/flags.go:372`), the request handler resolves the served directory by joining the configured `--dir` with the value of the client-supplied `Host` header. The join is performed by `filepath.Join` with no validation, so a `Host: ..` header walks one level above the document root. Subsequent file resolution then exposes everything in that parent directory — arbitrary file read, full directory listing, and, if any `.lua` file is present, server-side Lua execution. Algernon 1.17.7 and earlier are affected.</p>
<p>### Details</p>
<p>`engine/handlers.go` (function `RegisterHandlers`, around line 510):</p>
<p>```go
allRequests := func(w http.ResponseWriter, req *http.Request) {
    ...
    servedir := servedir
    if addDomain {
        servedir = filepath.Join(servedir, utils.GetDomain(req))   // &lt;— line 531
    }
    ...
    filename := utils.URL2filename(servedir, urlpath)
```</p>
<p>`utils/web.go` (`GetDomain`):</p>
<p>```go
func GetDomain(req *http.Request) string {
    host, _, err := net.SplitHostPort(req.Host)
    if err != nil {
        return req.Host          // &lt;— Host header returned verbatim
    }
    return host
}
```</p>
<p>`utils/files.go` (`URL2filename`) only sanitises the URL path — it never inspects `dirname`:</p>
<p>```go
func URL2filename(dirname, urlpath string) string {
    if strings.Contains(urlpath, "..") {
        return dirname + Pathsep         // dirname is trusted here…</p></div>
    </content>
    <link href="https://cve.radiocsirt.org/vuln/ghsa-jc3j-x6pg-4hmv"/>
  </entry>
</feed>
