pkgsrc-Changes archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
CVS commit: pkgsrc/security/flawfinder
Module Name: pkgsrc
Committed By: adam
Date: Wed Oct 7 17:15:41 UTC 2026
Modified Files:
pkgsrc/security/flawfinder: Makefile PLIST distinfo
Log Message:
flawfinder: updated to 2.0.20
2.0.20
Fix unlikely vulnerabilities (involving malicious filenames/text
in analyzed systems) and implement various improvements
* Fix security vulnerabilities found by Gemini:
- Terminal injection in standard output: apply strip_controls() to
level and category in show().
- Terminal injection in CSV output: apply strip_controls() to all
untrusted fields in show_csv() (category, name, warning,
suggestion, note, context_text).
- XML injection in SonarQube output: use quoteattr() for all XML
attributes in output_sonar().
- Defense-in-depth: restrict setattr in Hit.__init__ to an allowlist
of known keys used by rule definitions, countering pickle attacks.
We previously warned to not load untrusted pickle files, but
completely preventing attacks is better.
- Shell injection in CI/CD file entrypoint.sh:
quoted args with "$@" and moved output filename to
FLAWFINDER_OUTPUT env var in action.yml.
* Fix terminal injection vulnerability via crafted filenames.
A malicious file whose name contained ANSI escape sequences
(e.g. ESC[2K CR ESC[32m[OK]...) could cause flawfinder's
terminal output to be overwritten, e.g., so it falsely appeared
that no security issues were found. Filenames containing
control characters are now rejected with a warning.
As defense in depth, h() and show_csv() also strip control
characters from filenames before output.
Reported by Dan Lenz (thank you!!).
* Reject malicious pickles on hitlist load. Hitlists (--loadhitlist,
--diffhitlist) are now loaded via SafeUnpickler, a restricted
unpickler that only allows the specific classes and hook functions
that appear in legitimate hitlists. Arbitrary code execution from
a crafted hitlist file is blocked. A @hook decorator registers each
hook function, and a startup check ensures the allowlist stays in
sync with the ruleset automatically.
* Fix false positive: strlen() on a string literal (e.g.,
strlen("foo"), strlen(L"wide"), strlen(u8"utf8")) is always safe
because string literals are guaranteed null-terminated. No warning
is now issued in this case.
Fixes https://sourceforge.net/p/flawfinder/bugs/24/
* Fix false positive: equal(), mismatch(), and is_permutation() used
as identifiers (e.g. enum members) rather than function calls no
longer produce spurious warnings.
Fixes https://sourceforge.net/p/flawfinder/bugs/28/
* Fix false positive: std::ranges::equal(), std::ranges::mismatch(),
and std::ranges::is_permutation() (C++20) check both range lengths
automatically and are not vulnerable to over-read; they are no
longer flagged.
Fixes https://sourceforge.net/p/flawfinder/bugs/29/
* Fix typos in comments (preceeding, posible, theses, levle).
Fixes https://sourceforge.net/p/flawfinder/bugs/27/
* Added CI workflow (GitHub Actions) to run the test suite on every
push and pull request.
* Updated pylintrc for pylint 4.x compatibility.
* Added Sonar output format (--sonar). Thanks to Patschkowski.
* Updated CWE list delimiters.
* Added missing CWEs to FF1057 warning text.
* Removed duplicate word in help text.
* Fixed missing closing </li> tags in HTML output.
* Fixed typos in documentation.
* Fix false positives for method and member calls. Functions like
read(), system(), or StrCat() are no longer flagged when preceded
by "." or "->", e.g. stream.read(), obj.system(), ptr->read().
Global calls and explicit global-scope calls (::system()) are still
flagged. Fixes https://github.com/david-a-wheeler/flawfinder/issues/87
https://github.com/david-a-wheeler/flawfinder/issues/83
https://github.com/david-a-wheeler/flawfinder/issues/82
https://github.com/david-a-wheeler/flawfinder/issues/76
https://github.com/david-a-wheeler/flawfinder/issues/59
* Warn and skip files with encoding errors instead of aborting the
entire scan. A count of skipped files is reported at the end and
flawfinder exits with code 15 if any were skipped. The new
--error-on-encoding flag restores the old abort-on-first-error
behavior for strict pipelines.
Fixes https://github.com/david-a-wheeler/flawfinder/issues/80
https://github.com/david-a-wheeler/flawfinder/issues/68
* Fix SARIF output to produce valid URIs and helpUri values.
File paths are now percent-encoded so spaces and special characters
don't produce malformed URIs. Leading "./" prefixes are stripped so
paths work correctly with the uriBaseId/SRCROOT placeholder (paths
beginning with "-" retain "./" to avoid misinterpretation as CLI
options). The helpUri field now reliably resolves to a CWE URL or
falls back to a flawfinder rule URL; previously it could produce
invalid values like ")".
Fixes https://github.com/david-a-wheeler/flawfinder/issues/78
https://github.com/david-a-wheeler/flawfinder/issues/67
https://github.com/david-a-wheeler/flawfinder/issues/66
* Fix swprintf/vswprintf format-string detection. These functions take
(buf, n, format, ...) so the format string is at position 3, not 2.
Previously flawfinder inspected the size argument n instead, causing
false positives on constant formats and missing non-constant ones.
Fixes https://github.com/david-a-wheeler/flawfinder/issues/43
* Fix false positive: function names inside __attribute__((...)) are
compiler metadata, not callable expressions,
and are no longer flagged.
E.g., __attribute__((format(printf, 1, 2))) no longer triggers a
format-string warning.
Fixes https://github.com/david-a-wheeler/flawfinder/issues/27
* Add --exclude PATTERN option (repeatable) to skip files or
directories whose full path matches a glob pattern, e.g.
--exclude '*/third_party/*'. Useful for ignoring generated code,
vendored libraries, or test directories.
Fixes https://github.com/david-a-wheeler/flawfinder/issues/89
https://github.com/david-a-wheeler/flawfinder/issues/65
To generate a diff of this commit:
cvs rdiff -u -r1.31 -r1.32 pkgsrc/security/flawfinder/Makefile
cvs rdiff -u -r1.2 -r1.3 pkgsrc/security/flawfinder/PLIST
cvs rdiff -u -r1.12 -r1.13 pkgsrc/security/flawfinder/distinfo
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Modified files:
Index: pkgsrc/security/flawfinder/Makefile
diff -u pkgsrc/security/flawfinder/Makefile:1.31 pkgsrc/security/flawfinder/Makefile:1.32
--- pkgsrc/security/flawfinder/Makefile:1.31 Mon Aug 14 05:25:09 2023
+++ pkgsrc/security/flawfinder/Makefile Wed Oct 7 17:15:41 2026
@@ -1,19 +1,20 @@
-# $NetBSD: Makefile,v 1.31 2023/08/14 05:25:09 wiz Exp $
+# $NetBSD: Makefile,v 1.32 2026/10/07 17:15:41 adam Exp $
-DISTNAME= flawfinder-2.0.19
-PKGREVISION= 1
+DISTNAME= flawfinder-2.0.20
CATEGORIES= security devel
-MASTER_SITES= https://www.dwheeler.com/flawfinder/
+MASTER_SITES= https://dwheeler.com/flawfinder/
MAINTAINER= pkgsrc-users%NetBSD.org@localhost
-HOMEPAGE= https://www.dwheeler.com/flawfinder/
+HOMEPAGE= https://dwheeler.com/flawfinder/
COMMENT= Python program to find flaws in C/C++ programs
LICENSE= gnu-gpl-v2
+TOOL_DEPENDS+= ${PYPKGPREFIX}-setuptools>=78:../../devel/py-setuptools
+
INSTALLATION_DIRS= ${PKGMANDIR}/man1
post-install:
${INSTALL_MAN} ${WRKSRC}/flawfinder.1 ${DESTDIR}${PREFIX}/${PKGMANDIR}/man1
-.include "../../lang/python/egg.mk"
+.include "../../lang/python/wheel.mk"
.include "../../mk/bsd.pkg.mk"
Index: pkgsrc/security/flawfinder/PLIST
diff -u pkgsrc/security/flawfinder/PLIST:1.2 pkgsrc/security/flawfinder/PLIST:1.3
--- pkgsrc/security/flawfinder/PLIST:1.2 Mon Feb 6 11:23:50 2023
+++ pkgsrc/security/flawfinder/PLIST Wed Oct 7 17:15:41 2026
@@ -1,11 +1,12 @@
-@comment $NetBSD: PLIST,v 1.2 2023/02/06 11:23:50 nros Exp $
+@comment $NetBSD: PLIST,v 1.3 2026/10/07 17:15:41 adam Exp $
bin/flawfinder
-${PYSITELIB}/${EGG_INFODIR}/PKG-INFO
-${PYSITELIB}/${EGG_INFODIR}/SOURCES.txt
-${PYSITELIB}/${EGG_INFODIR}/dependency_links.txt
-${PYSITELIB}/${EGG_INFODIR}/entry_points.txt
-${PYSITELIB}/${EGG_INFODIR}/top_level.txt
-${PYSITELIB}/${EGG_INFODIR}/zip-safe
+${PYSITELIB}/${WHEEL_INFODIR}/METADATA
+${PYSITELIB}/${WHEEL_INFODIR}/RECORD
+${PYSITELIB}/${WHEEL_INFODIR}/WHEEL
+${PYSITELIB}/${WHEEL_INFODIR}/entry_points.txt
+${PYSITELIB}/${WHEEL_INFODIR}/licenses/COPYING
+${PYSITELIB}/${WHEEL_INFODIR}/top_level.txt
+${PYSITELIB}/${WHEEL_INFODIR}/zip-safe
${PYSITELIB}/flawfinder.py
${PYSITELIB}/flawfinder.pyc
${PYSITELIB}/flawfinder.pyo
Index: pkgsrc/security/flawfinder/distinfo
diff -u pkgsrc/security/flawfinder/distinfo:1.12 pkgsrc/security/flawfinder/distinfo:1.13
--- pkgsrc/security/flawfinder/distinfo:1.12 Mon Feb 6 11:23:50 2023
+++ pkgsrc/security/flawfinder/distinfo Wed Oct 7 17:15:41 2026
@@ -1,6 +1,6 @@
-$NetBSD: distinfo,v 1.12 2023/02/06 11:23:50 nros Exp $
+$NetBSD: distinfo,v 1.13 2026/10/07 17:15:41 adam Exp $
-BLAKE2s (flawfinder-2.0.19.tar.gz) = 0168e0f39c14517610584191e2106a2876f8c56399f5936cf2cf0c9e86fe2a0a
-SHA512 (flawfinder-2.0.19.tar.gz) = 7ac8684f157f30cb7cc0e2d9c270f92bb26e9207d9879530c499cc93af10070c2558f3794cc8b1a0a51b52ae771a4aa47157b467d0e6578cab96360cb0c6d90b
-Size (flawfinder-2.0.19.tar.gz) = 260817 bytes
+BLAKE2s (flawfinder-2.0.20.tar.gz) = 5a629e9be0f1a82432bd3781b22b9886a961e5a0c620d1ee8192497eb60b22a8
+SHA512 (flawfinder-2.0.20.tar.gz) = bd72f4145733f297dd70d3ba73fff1f481d50519431d76dfc1809af8b586c8b0311a62834ce217f5ced8732e2399ef93b592caa952f9cdb36e17ff2c5223c8c7
+Size (flawfinder-2.0.20.tar.gz) = 272298 bytes
SHA1 (patch-setup.py) = adef74ae8bf53be447cfb3d68d5d9d8dc36b93f6
Home |
Main Index |
Thread Index |
Old Index