typora-cn
Triggered rules
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:21
source_x86_64=("typora-${pkgver}.deb::https://typoraio.cn/linux/${_pkgname}_${pkgver}_amd64.deb")
llm_review
An AI model (anthropic/claude-4.6-sonnet-20260217) reviewed this and agrees it is MEDIUM (confidence 72%): typoraio.cn is the official Chinese regional domain for Typora (the software is sold/distributed there for the Chinese market, and the domain is referenced in the package's own url= field). However, it is not the primary international distribution host (typora.io), and the package installs a prebuilt proprietary binary (Electron app) extracted from a .deb without building from source. The sha256sums are present and pinned, which mitigates but does not eliminate supply-chain risk if the host is ever compromised or serves different content. The binary is executed (Typora is an Electron app with a native binary), so this is a genuine medium-severity supply-chain concern rather than a false positive, though it is a well-known commercial product with a plausible official mirror. The cheaper model's assessment is essentially correct.
PKGBUILD
1 offending line(s) highlighted# Maintainer: witt <1989161762 at qq dot com>
pkgname=typora-cn
_pkgname=typora
pkgver=1.10.8
pkgrel=1
pkgdesc="A minimal markdown editor and reader."
arch=('x86_64' 'aarch64')
license=('custom:"Copyright (c) 2015 Abner Lee All Rights Reserved."')
url="https://typoraio.cn/"
depends=('gtk3' 'nss' 'alsa-lib')
optdepends=(
'noto-fonts-emoji: Or some other emoji font to see emojis'
'pandoc: Import/export for extra file formats'
'typora-theme-lapis: A clean Typora theme in blue tones for Typora'
'typora-theme-phycat: 一款精心打磨过的多色多功能Typora主题'
'typora-theme-drake: Material Google JetBrains Vue Juejin Purple Ayu Dark for Typora'
)
previous=('typora' 'typora-cn')
conflicts=('typora')
source=("$_pkgname.sh")
source_x86_64=("typora-${pkgver}.deb::https://typoraio.cn/linux/${_pkgname}_${pkgver}_amd64.deb")
source_aarch64=("typora-${pkgver}.deb::https://typoraio.cn/linux/${_pkgname}_${pkgver}_arm64.deb")
sha256sums=('dd44018cd3e9eb13c71c12c4c93fc8176698cf5fed73729fe2b8262595a99ead')
sha256sums_x86_64=('edabb14ed75569fbccd9f229415bc47b2d50e9e2d51b798b7637595dca9213f4')
sha256sums_aarch64=('edabb14ed75569fbccd9f229415bc47b2d50e9e2d51b798b7637595dca9213f4')
prepare() {
# extract deb archive
[ -f "data.tar.xz" ] && bsdtar -xf data.tar.xz
[ -f "data.tar.zst" ] && bsdtar -xf data.tar.zst
# remove change log from application comment
sed -i '/Change Log/d' "${srcdir}/usr/share/applications/typora.desktop"
}
package() {
install -Dm755 "${srcdir}/$_pkgname.sh" "$pkgdir/usr/bin/${_pkgname}"
cd "${srcdir}/";
# icons
find "usr/share/icons" -type f -exec install -Dm644 {} "${pkgdir}/{}" \;
# icons
find "usr/share/${_pkgname}/" -type f -exec install -Dm644 {} "${pkgdir}/{}" \;
# typora command
install -Dm755 "${srcdir}/usr/share/typora/Typora" "$pkgdir/usr/share/typora/"
# move license to correct path
install -Dm644 "${srcdir}/usr/share/doc/$_pkgname/copyright" "${pkgdir}/usr/share/licenses/${_pkgname}/LICENSE"
# desktop file
install -Dm644 "${srcdir}/usr/share/applications/typora.desktop" "$pkgdir/usr/share/applications/typora.desktop"
}
Scan history
| Scanned at (UTC) | Severity | Rules |
|---|---|---|
| 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 |