diff --git a/content/post/00011-security-audit-1/index.md b/content/post/00011-security-audit-1/index.md
new file mode 100644
index 0000000..7bbbe1f
--- /dev/null
+++ b/content/post/00011-security-audit-1/index.md
@@ -0,0 +1,15 @@
+---
+title: "ROS Security Audit"
+date: 2024-04-15
+resources:
+- src: "pentest_1.pdf"
+ title: "Monal IM penetration test report 2024 1.0"
+
+tags: []
+author: "Thilo Molitor"
+---
+
+Radically Open Security (ROS) kindly performed a security audit of some parts of Monal.
+Specifically they audited the usage of our XML query language and the implementations of SASL2, SCRAM and SSDP.
+
+The results in a nutshell: *no security issues found*, read the full report here: {{< pdfLink "pentest_1.pdf" >}}.
diff --git a/content/post/00011-security-audit-1/pentest_1.pdf b/content/post/00011-security-audit-1/pentest_1.pdf
new file mode 100644
index 0000000..b41caec
Binary files /dev/null and b/content/post/00011-security-audit-1/pentest_1.pdf differ
diff --git a/layouts/shortcodes/pdfLink.html b/layouts/shortcodes/pdfLink.html
new file mode 100644
index 0000000..fa3b48a
--- /dev/null
+++ b/layouts/shortcodes/pdfLink.html
@@ -0,0 +1,9 @@
+{{ if .IsNamedParams }}
+ {{ $pdf := $.Page.Resources.GetMatch (.Get "name") }}
+ {{ $title := cond (not (.Get "title")) $pdf.Title (.Get "title") }}
+ {{ $title | safeHTML }}
+{{ else }}
+ {{ $pdf := $.Page.Resources.GetMatch (.Get 0) }}
+ {{ $title := cond (not (.Get 1)) $pdf.Title (.Get 1) }}
+ {{ $title | safeHTML }}
+{{ end }}