ostorybook

maintainer macxcool · 12 votes · scanned 2026-08-03 00:08:14.047287
MEDIUM
View on AUR ↗
Why flagged The source is a prebuilt ZIP archive (containing a .sh launcher script and Java JARs in a lib/ directory) downloaded from ostorybook.free.fr — a free.fr subdomain rather than the project's own domain (ostorybook.eu). The official site URL listed in the PKGBUILD is ostorybook.eu/v6/en/ but the download comes from a different host entirely. The package installs and executes the bundled shell script (oStorybook.sh) directly into /usr/bin, and the lib/ directory of JARs is also installed. Because the downloaded content includes executed code (a shell script and Java libraries) from a host that is not the canonical project domain, this represents a genuine supply-chain concern: if the free.fr account were compromised or the file substituted, arbitrary code would execute on the user's system. The sha256sum provides some integrity protection but does not mitigate the risk of the upstream file being silently replaced at the same URL. This is a real medium-severity supply-chain concern, not a false positive.

Triggered rules

MEDIUM source=() URL on a non-standard host source_untrusted_domain

One or more source=() URLs point to a host outside the trusted allowlist (github.com, gitlab.com, codeberg.org, pypi.org, …).

  • PKGBUILD:13 source=("http://ostorybook.free.fr/download/current/oStorybook-${pkgver}.zip")
MEDIUM AI review llm_review

An AI model (anthropic/claude-4.6-sonnet-20260217) reviewed this and agrees it is MEDIUM (confidence 72%): The source is a prebuilt ZIP archive (containing a .sh launcher script and Java JARs in a lib/ directory) downloaded from ostorybook.free.fr — a free.fr subdomain rather than the project's own domain (ostorybook.eu). The official site URL listed in the PKGBUILD is ostorybook.eu/v6/en/ but the download comes from a different host entirely. The package installs and executes the bundled shell script (oStorybook.sh) directly into /usr/bin, and the lib/ directory of JARs is also installed. Because the downloaded content includes executed code (a shell script and Java libraries) from a host that is not the canonical project domain, this represents a genuine supply-chain concern: if the free.fr account were compromised or the file substituted, arbitrary code would execute on the user's system. The sha256sum provides some integrity protection but does not mitigate the risk of the upstream file being silently replaced at the same URL. This is a real medium-severity supply-chain concern, not a false positive.

PKGBUILD

1 offending line(s) highlighted
1# Maintainer: Mark Coolen
2# Contributor: Dan Serban
3
4pkgname=ostorybook
5_pkgname=oStorybook
6pkgver=6.05
7pkgrel=1
8pkgdesc="Open Source Novel Writing Software for Novelists, Authors and Creative Writers"
9arch=(any)
10url="http://ostorybook.eu/v6/en/"
11license=(GPL)
12depends=('java-runtime>8')
13source=("http://ostorybook.free.fr/download/current/oStorybook-${pkgver}.zip")
14sha256sums=('9aa90720d6d602769530fa82a5590258e95d2cfea53f59e58dbb8bffedc8164e')
15options=('!strip')
16
17package()
18{
19 rm -f "${_pkgname}-5.*.zip"
20 install --mode 755 -D -T "${_pkgname}.sh" "${pkgdir}/usr/bin/${_pkgname}"
21 install -D -t "${pkgdir}/usr/share/${pkgname}" ./*.*
22 #cp -r Assistant "${pkgdir}/usr/share/${pkgname}"
23 cp -r lib "${pkgdir}/usr/share/${pkgname}"
24
25 # Create Desktop file
26 install -d "${pkgdir}/usr/share/applications"
27 DESKTOPFILE="${pkgdir}/usr/share/applications/${_pkgname}.desktop"
28 echo "[Desktop Entry]" > "${DESKTOPFILE}"
29 echo "Name=${_pkgname}" >> "${DESKTOPFILE}"
30 echo "Comment=Open Source Novel Writing Software for Novelists, Authors and Creative Writers" >> "${DESKTOPFILE}"
31 echo "Exec=${_pkgname}" >> "${DESKTOPFILE}"
32 echo "Terminal=false" >> "${DESKTOPFILE}"
33 echo "Type=Application" >> "${DESKTOPFILE}"
34 echo "Icon=/usr/share/${pkgname}/${_pkgname}-icon.png" >> "${DESKTOPFILE}"
35 echo "Categories=Office;" >> "${DESKTOPFILE}"
36}
37

Scan history

Scanned at (UTC)SeverityRules
2026-08-03 00:08:14 MEDIUM 2
2026-08-02 00:16:08 MEDIUM 2
2026-08-01 00:11:18 MEDIUM 2
2026-07-31 00:14:10 MEDIUM 2
2026-07-30 00:17:23 MEDIUM 2
2026-07-29 00:25:53 MEDIUM 2
2026-07-28 00:07:28 MEDIUM 2
2026-07-27 00:24:32 MEDIUM 2
2026-07-26 00:07:32 MEDIUM 2
2026-07-25 00:13:44 MEDIUM 2
2026-07-24 00:02:28 MEDIUM 2
2026-07-23 00:14:47 MEDIUM 2
2026-07-22 00:29:32 MEDIUM 2
2026-07-21 00:24:15 MEDIUM 2
2026-07-20 00:19:49 MEDIUM 2
2026-07-19 00:17:08 MEDIUM 2
2026-07-18 00:14:48 MEDIUM 2
2026-07-17 00:06:16 MEDIUM 2
2026-07-16 00:05:41 MEDIUM 2
2026-07-15 00:09:25 MEDIUM 2

Report a package

Reports go to the AURWatch maintainer (one person) and are read by hand. No login required.

0 / 4000
Your suggestion