<feed xmlns='http://www.w3.org/2005/Atom'>
<title>luci/applications/luci-app-adblock/root/usr/share, branch master</title>
<subtitle>Lua Configuration Interface (mirror)</subtitle>
<id>https://git.openwrt.org/project/luci/atom?h=master</id>
<link rel='self' href='https://git.openwrt.org/project/luci/atom?h=master'/>
<link rel='alternate' type='text/html' href='https://git.openwrt.org/project/luci/'/>
<updated>2026-07-31T12:58:42Z</updated>
<entry>
<title>luci-app-adblock: fix rpcd file access on symlinked /var/run</title>
<updated>2026-07-31T12:58:42Z</updated>
<author>
<name>Dirk Brenken</name>
</author>
<published>2026-07-31T12:58:42Z</published>
<link rel='alternate' type='text/html' href='https://git.openwrt.org/project/luci/commit/?id=7b4b303decbc6b0cb5e40eab64fec39fb4921ca6'/>
<id>urn:sha1:7b4b303decbc6b0cb5e40eab64fec39fb4921ca6</id>
<content type='text'>
rpcd e37ed9d8 ("file: re-authorize ACL against resolved path to close
symlink bypass", GHSA-q5gr-86pq-vvwr) re-resolves the requested path
with realpath() and re-runs the ACL check against the resolved target
for file.read, file.write, file.md5, file.list and file.stat.

On OpenWrt /var is a symlink to /tmp (or /var/run to /tmp/run with
CONFIG_TARGET_ROOTFS_PERSIST_VAR), so every "/var/run/adblock/*" grant
resolves to "/tmp/run/adblock/*", which is not covered by the ACL. The
second check therefore fails with EACCES.

Effects in the DNS report view: the adblock.report flag file can no
longer be written or polled, so every 'Refresh...' run ends in
"Failed to generate adblock report!" after the retry limit. The
'Blocklist Search...' dialog fails the same way. Both errors stay
invisible because the calls are wrapped in L.resolveDefault(). Report
generation itself is unaffected since fs.exec_direct() goes through
cgi-io, which does not resolve symlinks.

Independently of that, the runtime status polling in overview.js gates
on fs.stat(), and rpcd authorizes file.stat with the "list" permission
while the ACL only granted "read". rpc_session_acl_allowed() matches
the permission literally via fnmatch(), so the call was denied and the
poll callback returned early without updating the status.

- grant the resolved /tmp/run counterpart for every /var/run path
- keep the /var/run entries so the ACL stays valid on targets where
  /var is a real directory
- grant "list" on adblock.runtime.json for the fs.stat() probe
- bump PKG_RELEASE

Signed-off-by: Dirk Brenken &lt;dev@brenken.org&gt;
</content>
</entry>
<entry>
<title>luci-app-adblock: grant the ubus file methods used by the frontend</title>
<updated>2026-07-20T16:05:22Z</updated>
<author>
<name>Dirk Brenken</name>
</author>
<published>2026-07-20T16:05:22Z</published>
<link rel='alternate' type='text/html' href='https://git.openwrt.org/project/luci/commit/?id=6c369a7fcd6680e868f378d3ab1ce9d8c72fe4da'/>
<id>urn:sha1:6c369a7fcd6680e868f378d3ab1ce9d8c72fe4da</id>
<content type='text'>
The frontend calls fs.stat(), fs.read() and fs.write(), which are ubus
calls on the "file" object and require the corresponding ubus ACL in
addition to the already existing path ACLs. Only "list" and "remove" are
granted by luci-base, so for non-root sessions every stat resolved to
null and saving the allow-/blocklist and the custom feeds failed.

Signed-off-by: Dirk Brenken &lt;dev@brenken.org&gt;
</content>
</entry>
<entry>
<title>luci-app-adblock: fix ACL for non-root users</title>
<updated>2026-07-19T16:20:15Z</updated>
<author>
<name>Dirk Brenken</name>
</author>
<published>2026-07-19T16:20:15Z</published>
<link rel='alternate' type='text/html' href='https://git.openwrt.org/project/luci/commit/?id=ba8b58b94fce595303aa103f0642cffb0a7088ca'/>
<id>urn:sha1:ba8b58b94fce595303aa103f0642cffb0a7088ca</id>
<content type='text'>
Three related ACL defects:

* The frontend reads the feed, category and list files as well as the
  runtime information via fs.read_direct(), which is served by cgi-io's
  download handler. That handler requires the "cgi-io"/"download" scope,
  which was not granted, so all of these requests failed with a 403 for
  non-root sessions.

* The custom feed import uses ui.uploadFile(), which is served by
  cgi-io's upload handler and requires the "cgi-io"/"upload" scope in
  the write section. It was missing as well.

* All file entries lived in the write section, including the read-only
  ones. Since rpcd pulls a section in via the matching list in
  /etc/config/rpcd, a session holding only "list read luci-app-adblock"
  had no read access to any of the files at all. Move the read
  permissions to the read section and keep only the write permissions in
  the write section.

The effective permission set of a session holding both lists is
unchanged. Also drop the stale adblock.pid entry, it has no consumer in
the frontend anymore.

Signed-off-by: Dirk Brenken &lt;dev@brenken.org&gt;
</content>
</entry>
<entry>
<title>luci-app-adblock: release 4.5.5-1</title>
<updated>2026-04-17T07:59:11Z</updated>
<author>
<name>Dirk Brenken</name>
</author>
<published>2026-04-17T07:59:11Z</published>
<link rel='alternate' type='text/html' href='https://git.openwrt.org/project/luci/commit/?id=09d8181ef75dd04df69e8c3f23fe8467a0958183'/>
<id>urn:sha1:09d8181ef75dd04df69e8c3f23fe8467a0958183</id>
<content type='text'>
* sync with base package

Signed-off-by: Dirk Brenken &lt;dev@brenken.org&gt;
</content>
</entry>
<entry>
<title>luci-app-adblock: update 4.5.3-3</title>
<updated>2026-03-22T19:01:12Z</updated>
<author>
<name>Dirk Brenken</name>
</author>
<published>2026-03-22T19:01:12Z</published>
<link rel='alternate' type='text/html' href='https://git.openwrt.org/project/luci/commit/?id=59465752a8b0bb2379b613642505b8bd28854e1e'/>
<id>urn:sha1:59465752a8b0bb2379b613642505b8bd28854e1e</id>
<content type='text'>
* sync with base package

Signed-off-by: Dirk Brenken &lt;dev@brenken.org&gt;
</content>
</entry>
<entry>
<title>luci-app-adblock: remove obsolete ACLs</title>
<updated>2025-11-21T20:55:05Z</updated>
<author>
<name>Dirk Brenken</name>
</author>
<published>2025-11-21T20:55:05Z</published>
<link rel='alternate' type='text/html' href='https://git.openwrt.org/project/luci/commit/?id=fa2945a2e2dd1c94bc063d13257046234807d3b9'/>
<id>urn:sha1:fa2945a2e2dd1c94bc063d13257046234807d3b9</id>
<content type='text'>
* the app now uses rpc / the ubus log object and no longer requires logread ACLs

Signed-off-by: Dirk Brenken &lt;dev@brenken.org&gt;
</content>
</entry>
<entry>
<title>luci-app-adblock: sync with adblock 4.4.4-1</title>
<updated>2025-11-21T18:05:36Z</updated>
<author>
<name>Dirk Brenken</name>
</author>
<published>2025-11-21T18:05:22Z</published>
<link rel='alternate' type='text/html' href='https://git.openwrt.org/project/luci/commit/?id=7d348dd14f1f9bf5311342031219ae12cd4ab2ff'/>
<id>urn:sha1:7d348dd14f1f9bf5311342031219ae12cd4ab2ff</id>
<content type='text'>
Signed-off-by: Dirk Brenken &lt;dev@brenken.org&gt;
</content>
</entry>
<entry>
<title>luci-app-adblock: use separate log viewer template</title>
<updated>2025-10-26T18:43:48Z</updated>
<author>
<name>Dirk Brenken</name>
</author>
<published>2025-10-26T18:43:48Z</published>
<link rel='alternate' type='text/html' href='https://git.openwrt.org/project/luci/commit/?id=3fb12ab7d7604d25facb8a80afbc0f89af9bf28a'/>
<id>urn:sha1:3fb12ab7d7604d25facb8a80afbc0f89af9bf28a</id>
<content type='text'>
Signed-off-by: Dirk Brenken &lt;dev@brenken.org&gt;
</content>
</entry>
<entry>
<title>luci-app-*: migrate LogreadBox consumers to use new permission ACLs</title>
<updated>2025-10-20T19:11:11Z</updated>
<author>
<name>Paul Donald</name>
</author>
<published>2025-10-20T11:11:05Z</published>
<link rel='alternate' type='text/html' href='https://git.openwrt.org/project/luci/commit/?id=fd830434cb5fec77b258f22655dced237ea81f0b'/>
<id>urn:sha1:fd830434cb5fec77b258f22655dced237ea81f0b</id>
<content type='text'>
		"ubus": {
			"log": [ "read" ]
		}

Signed-off-by: Paul Donald &lt;newtwen+github@gmail.com&gt;
</content>
</entry>
<entry>
<title>luci-app-adblock: sync with update 4.4.2-1</title>
<updated>2025-05-30T16:42:37Z</updated>
<author>
<name>Dirk Brenken</name>
</author>
<published>2025-05-30T16:42:18Z</published>
<link rel='alternate' type='text/html' href='https://git.openwrt.org/project/luci/commit/?id=d971e88a0f7ab653d1bcf73dd4481e205c841c0b'/>
<id>urn:sha1:d971e88a0f7ab653d1bcf73dd4481e205c841c0b</id>
<content type='text'>
Various fixes, a new modal reporting GeoIP map of blocked domains.

Signed-off-by: Dirk Brenken &lt;dev@brenken.org&gt;
</content>
</entry>
</feed>
