diff --git a/security/gsad/Makefile b/security/gsad/Makefile index c6dd153735ef..544f509f724e 100644 --- a/security/gsad/Makefile +++ b/security/gsad/Makefile @@ -1,54 +1,55 @@ PORTNAME= gsad DISTVERSIONPREFIX= v DISTVERSION= 22.4.0 +PORTREVISION= 1 CATEGORIES= security MAINTAINER= acm@FreeBSD.org COMMENT= Greenbone Security Assistant HTTP server WWW= https://github.com/greenbone/gsa LICENSE= AGPLv3+ LIB_DEPENDS= libgvm_base.so:security/gvm-libs \ libgnutls.so:security/gnutls \ libgcrypt.so:security/libgcrypt \ libgpg-error.so:security/libgpg-error \ libmicrohttpd.so:www/libmicrohttpd RUN_DEPENDS= doxygen>0:devel/doxygen \ ${PYTHON_PKGNAMEPREFIX}polib>=0:devel/py-polib@${PY_FLAVOR} USES= cmake gettext-runtime gnome pkgconfig python USE_GNOME= glib20 libxml2 USE_GITHUB= yes GH_ACCOUNT= greenbone GH_PROJECT= gsad USERS= gvm GROUPS= ${USERS} USE_RC_SUBR= gsad LDFLAGS+= -lm ETCDIR= ${PREFIX}/etc/gvm post-extract: @${MV} ${WRKSRC}/src/gsad_log_conf.cmake_in ${WRKSRC}/src/gsad_log.conf.sample post-patch: ${REINPLACE_CMD} -e 's|$${GVM_LOG_DIR}|/var/log/gvm|g' ${WRKSRC}/src/gsad_log.conf.sample post-install: @${MKDIR} ${STAGEDIR}/var/run/gsad @${MKDIR} ${STAGEDIR}/var/run/gvm @${MKDIR} ${STAGEDIR}${ETCDIR} @${INSTALL_DATA} ${WRKSRC}/src/gsad_log.conf.sample ${STAGEDIR}${ETCDIR} @${ECHO_CMD} "@sample etc/gvm/gsad_log.conf.sample" >> ${TMPPLIST} @${ECHO_CMD} "sbin/gsad" >> ${TMPPLIST} >> ${TMPPLIST} @${ECHO_CMD} "share/man/man8/gsad.8.gz" >> ${TMPPLIST} @${ECHO_CMD} "@dir(gvm,gvm,750) /var/run/gsad" >> ${TMPPLIST} @${ECHO_CMD} "@dir(gvm,gvm,750) /var/run/gvm" >> ${TMPPLIST} .include diff --git a/security/gsad/files/patch-src_gsad.c b/security/gsad/files/patch-src_gsad.c new file mode 100644 index 000000000000..ac66b56ca8b4 --- /dev/null +++ b/security/gsad/files/patch-src_gsad.c @@ -0,0 +1,51 @@ +--- src/gsad.c 2022-10-30 17:54:07.766381000 -0500 ++++ src/gsad.c 2022-10-30 17:57:38.383048000 -0500 +@@ -480,7 +480,7 @@ + gvm_validator_add (validator, "asset_name", "(?s)^.*$"); + gvm_validator_add (validator, "asset_type", "^(host|os)$"); + gvm_validator_add (validator, "asset_id", +- "^([[:alnum:]-_.:\\/~()']|&)+$"); ++ "^([[:alnum:]\\-_.:\\/~()']|&)+$"); + gvm_validator_add (validator, "auth_algorithm", "^(md5|sha1)$"); + gvm_validator_add (validator, "auth_method", "^(0|1|2)$"); + /* Defined in RFC 2253. */ +@@ -595,7 +595,7 @@ + gvm_validator_add (validator, "list_fname", + "^([[:alnum:]_-]|%[%CcDFMmNTtUu])+$"); + /* Used for users, credentials, and scanner login name. */ +- gvm_validator_add (validator, "login", "^[[:alnum:]-_@.]+$"); ++ gvm_validator_add (validator, "login", "^[[:alnum:]\\-_@.]+$"); + gvm_validator_add (validator, "lsc_password", "^.*$"); + gvm_validator_add (validator, "max_result", "^[0-9]+$"); + gvm_validator_add (validator, "max_groups", "^-?[0-9]+$"); +@@ -605,10 +605,10 @@ + gvm_validator_add (validator, "note_required", "(?s)^(.)+$"); + gvm_validator_add (validator, "note_id", "^[a-z0-9\\-]+$"); + gvm_validator_add (validator, "override_id", "^[a-z0-9\\-]+$"); +- gvm_validator_add (validator, "name", "^[#-_[:alnum:], \\./]*$"); ++ gvm_validator_add (validator, "name", "^[#\\-_[:alnum:], \\./]*$"); + gvm_validator_add (validator, "info_name", "(?s)^.*$"); + gvm_validator_add (validator, "info_type", "(?s)^.*$"); +- gvm_validator_add (validator, "info_id", "^([[:alnum:]-_.:\\/~()']|&)+$"); ++ gvm_validator_add (validator, "info_id", "^([[:alnum:]\\-_.:\\/~()']|&)+$"); + gvm_validator_add (validator, "details", "^[0-1]$"); + /* Number is special cased in params_mhd_validate to remove the space. */ + gvm_validator_add (validator, "number", "^ *[0-9]+ *$"); +@@ -660,7 +660,7 @@ + "filter|group|host|info|nvt|note|os|ovaldef|override|permission|port_list|" + "report|report_format|result|role|scanner|schedule|tag|target|task|ticket|" + "tls_certificate|user|vuln|)$"); +- gvm_validator_add (validator, "resource_id", "^[[:alnum:]-_.:\\/~]*$"); ++ gvm_validator_add (validator, "resource_id", "^[[:alnum:]\\-_.:\\/~]*$"); + gvm_validator_add (validator, "resources_action", "^(|add|set|remove)$"); + gvm_validator_add ( + validator, "optional_resource_type", +@@ -719,7 +719,7 @@ + gvm_validator_add (validator, "uuid", "^[0-9abcdefABCDEF\\-]{1,40}$"); + gvm_validator_add (validator, "usage_type", "^(audit|policy|scan|)$"); + /* This must be "login" with space and comma. */ +- gvm_validator_add (validator, "users", "^[[:alnum:]-_@., ]*$"); ++ gvm_validator_add (validator, "users", "^[[:alnum:]\\-_@., ]*$"); + gvm_validator_add (validator, "x_field", "^[\\[\\]_[:alnum:]]+$"); + gvm_validator_add (validator, "y_fields:name", "^[0-9]+$"); + gvm_validator_add (validator, "y_fields:value", "^[\\[\\]_[:alnum:]]+$"); diff --git a/security/gvm/Makefile b/security/gvm/Makefile index 15291eb26c67..d208a4dce920 100644 --- a/security/gvm/Makefile +++ b/security/gvm/Makefile @@ -1,42 +1,42 @@ PORTNAME= gvm PORTVERSION= 22.4.0 -PORTREVISION= 3 +PORTREVISION= 4 CATEGORIES= security MAINTAINER= acm@FreeBSD.org COMMENT= Greenbone vulnerability management (metaport) WWW= https://www.openvas.org/ USES= metaport python:3.7+ # Install GVM libraries RUN_DEPENDS+= ${LOCALBASE}/lib/libgvm_base.so:security/gvm-libs # Install GVM Manager RUN_DEPENDS+= ${LOCALBASE}/sbin/gvmd:security/gvmd # Install Scanner wrapper for OSP RUN_DEPENDS+= ${LOCALBASE}/bin/ospd-openvas:security/py-ospd-openvas@${PY_FLAVOR} # Install OpenVAS Scanner RUN_DEPENDS+= ${LOCALBASE}/sbin/openvas:security/openvas # Install Notus Scanner RUN_DEPENDS+= ${LOCALBASE}/bin/notus-scanner:security/py-notus-scanner # Install GVM Web Interface RUN_DEPENDS+= ${LOCALBASE}/sbin/gsad:security/gsad RUN_DEPENDS+= ${LOCALBASE}/share/gvm/gsad/web/index.html:security/gsa SUB_FILES= pkg-message OPTIONS_DEFINE= PYTHON-GVM GVM-TOOLS OPTIONS_DEFAULT= PYTHON-GVM GVM-TOOLS PYTHON-GVM_DESC= Install GVM python API library GVM-TOOLS_DESC= Install GVM tools PYTHON-GVM_RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}python-gvm>=0:security/py-python-gvm@${PY_FLAVOR} GVM-TOOLS_RUN_DEPENDS= gvm-cli:security/py-gvm-tools@${PY_FLAVOR} .include diff --git a/security/gvmd/Makefile b/security/gvmd/Makefile index 1bbc884129a6..6e2822bab6fa 100644 --- a/security/gvmd/Makefile +++ b/security/gvmd/Makefile @@ -1,61 +1,60 @@ PORTNAME= gvmd DISTVERSION= 22.4.0 -PORTREVISION= 1 +PORTREVISION= 2 DISTVERSIONPREFIX= v CATEGORIES= security MAINTAINER= acm@FreeBSD.org COMMENT= Greenbone Vulnerability Manager central management service WWW= https://github.com/greenbone/gvmd LICENSE= AGPLv3+ BUILD_DEPENDS= doxygen>0:devel/doxygen LIB_DEPENDS= libgvm_base.so:security/gvm-libs \ libgnutls.so:security/gnutls \ libgpgme.so:security/gpgme \ libical.so:devel/libical RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}lxml>0:devel/py-lxml@${PY_FLAVOR} \ ${LOCALBASE}/lib/postgresql/libpg-gvm.so:databases/pg-gvm \ doxygen>0:devel/doxygen \ p5-XML-Twig>=0:textproc/p5-XML-Twig \ snmpget:net-mgmt/net-snmp \ rsync:net/rsync \ wget:ftp/wget \ gpg:security/gnupg \ xml:textproc/xmlstarlet \ sshpass:security/sshpass \ socat:net/socat \ zip:archivers/zip USE_GITHUB= yes GH_ACCOUNT= greenbone USES= cmake gnome pkgconfig pgsql python samba:run shebangfix USE_GNOME= glib20 libxslt:build USE_LDCONFIG= yes USERS= gvm GROUPS= ${USERS} USE_RC_SUBR= gvmd SHEBANG_FILES= tools/gvm-lsc-rpm-creator \ tools/gvm-lsc-deb-creator \ src/alert_methods/TippingPoint/report-convert.py \ src/alert_methods/SCP/alert \ src/alert_methods/SMB/alert post-patch: ${REINPLACE_CMD} -e 's|%%LOCALBASE%%|${LOCALBASE}|g' ${WRKSRC}/src/manage_sql.c ${REINPLACE_CMD} -e 's|+660|660|g' ${WRKSRC}/tools/greenbone-feed-sync.in ${REINPLACE_CMD} -e 's|#include ||g' ${WRKSRC}/src/manage.c \ - ${WRKSRC}/src/gvmd.c ${WRKSRC}/src/manage_sql_secinfo.c \ - ${WRKSRC}/src/manage_sql.c ${WRKSRC}/src/manage_sql_report_formats.c + ${WRKSRC}/src/gvmd.c ${WRKSRC}/src/manage_sql_secinfo.c post-install: @${MKDIR} ${STAGEDIR}/var/lib/gvm/gvmd/gnupg @${MKDIR} ${STAGEDIR}/var/log/gvm @${MKDIR} ${STAGEDIR}/var/run/gvmd .include diff --git a/security/gvmd/files/patch-src_manage.c b/security/gvmd/files/patch-src_manage.c index 85f58ef903cf..32cfdbfb5264 100644 --- a/security/gvmd/files/patch-src_manage.c +++ b/security/gvmd/files/patch-src_manage.c @@ -1,10 +1,19 @@ ---- src/manage.c 2020-12-31 17:01:32.913198000 -0500 -+++ src/manage.c 2020-12-31 17:01:47.001860000 -0500 -@@ -75,6 +75,7 @@ +--- src/manage.c 2022-07-21 02:20:24.000000000 -0500 ++++ src/manage.c 2022-10-30 17:41:24.914386000 -0500 +@@ -76,6 +76,7 @@ #include #include #include +#include #include #include #include +@@ -5952,7 +5953,7 @@ + int + validate_username (const gchar * name) + { +- if (g_regex_match_simple ("^[[:alnum:]-_.]+$", name, 0, 0)) ++ if (g_regex_match_simple ("^[[:alnum:]_.-]+$", name, 0, 0)) + return 0; + else + return 1; diff --git a/security/gvmd/files/patch-src_manage_configs.c b/security/gvmd/files/patch-src_manage_configs.c new file mode 100644 index 000000000000..f60828fbdff3 --- /dev/null +++ b/security/gvmd/files/patch-src_manage_configs.c @@ -0,0 +1,11 @@ +--- src/manage_configs.c 2022-10-30 17:15:56.559846000 -0500 ++++ src/manage_configs.c 2022-10-30 17:17:03.298223000 -0500 +@@ -316,7 +316,7 @@ + + split = g_regex_split_simple + (/* Full-and-Fast--daba56c8-73ec-11df-a475-002264764cea.xml */ +- "^.*([0-9a-f]{8})-([0-9a-f]{4})-([0-9a-f]{4})-([0-9a-f]{4})-([0-9a-f]{12}).xml$", ++ "^.*([0-9a-f]{8})\\-([0-9a-f]{4})\\-([0-9a-f]{4})\\-([0-9a-f]{4})\\-([0-9a-f]{12}).xml$", + path, 0, 0); + + if (split == NULL || g_strv_length (split) != 7) diff --git a/security/gvmd/files/patch-src_manage_port_lists.c b/security/gvmd/files/patch-src_manage_port_lists.c new file mode 100644 index 000000000000..574d008a842d --- /dev/null +++ b/security/gvmd/files/patch-src_manage_port_lists.c @@ -0,0 +1,11 @@ +--- src/manage_port_lists.c 2022-10-30 17:18:04.068398000 -0500 ++++ src/manage_port_lists.c 2022-10-30 17:18:35.850793000 -0500 +@@ -252,7 +252,7 @@ + + split = g_regex_split_simple + (/* Full-and-Fast--daba56c8-73ec-11df-a475-002264764cea.xml */ +- "^.*([0-9a-f]{8})-([0-9a-f]{4})-([0-9a-f]{4})-([0-9a-f]{4})-([0-9a-f]{12}).xml$", ++ "^.*([0-9a-f]{8})\\-([0-9a-f]{4})\\-([0-9a-f]{4})\\-([0-9a-f]{4})\\-([0-9a-f]{12}).xml$", + path, 0, 0); + + if (split == NULL || g_strv_length (split) != 7) diff --git a/security/gvmd/files/patch-src_manage_report_formats.c b/security/gvmd/files/patch-src_manage_report_formats.c new file mode 100644 index 000000000000..9e8fb0af0756 --- /dev/null +++ b/security/gvmd/files/patch-src_manage_report_formats.c @@ -0,0 +1,11 @@ +--- src/manage_report_formats.c 2022-10-30 17:19:27.476854000 -0500 ++++ src/manage_report_formats.c 2022-10-30 17:19:55.531658000 -0500 +@@ -612,7 +612,7 @@ + + split = g_regex_split_simple + (/* Full-and-Fast--daba56c8-73ec-11df-a475-002264764cea.xml */ +- "^.*([0-9a-f]{8})-([0-9a-f]{4})-([0-9a-f]{4})-([0-9a-f]{4})-([0-9a-f]{12}).xml$", ++ "^.*([0-9a-f]{8})\\-([0-9a-f]{4})\\-([0-9a-f]{4})\\-([0-9a-f]{4})\\-([0-9a-f]{12}).xml$", + path, 0, 0); + + if (split == NULL || g_strv_length (split) != 7) diff --git a/security/gvmd/files/patch-src_manage_sql.c b/security/gvmd/files/patch-src_manage_sql.c index fe750e08bd2b..343c997fa208 100644 --- a/security/gvmd/files/patch-src_manage_sql.c +++ b/security/gvmd/files/patch-src_manage_sql.c @@ -1,28 +1,65 @@ ---- src/manage_sql.c 2021-04-16 02:27:18.000000000 -0500 -+++ src/manage_sql.c 2021-06-14 19:33:56.599632000 -0500 -@@ -52,7 +52,6 @@ +--- src/manage_sql.c 2022-07-21 02:20:24.000000000 -0500 ++++ src/manage_sql.c 2022-10-30 17:32:08.342879000 -0500 +@@ -54,7 +54,6 @@ #include #include #include -#include #include #include #include -@@ -9075,7 +9074,7 @@ +@@ -71,7 +70,6 @@ + #include + #include + #include +-#include + #include + #include + #include +@@ -6997,7 +6995,7 @@ + + if (strcmp (name, "tp_sms_hostname") == 0) + { +- if (g_regex_match_simple ("^[0-9A-Za-z][0-9A-Za-z.-]*$", ++ if (g_regex_match_simple ("^[0-9A-Za-z][0-9A-Za-z.\\-]*$", + *data, 0, 0) + == FALSE) + { +@@ -9122,7 +9120,7 @@ g_debug (" HTTP_GET %s", url); cmd = (gchar **) g_malloc (5 * sizeof (gchar *)); - cmd[0] = g_strdup ("/usr/bin/wget"); + cmd[0] = g_strdup ("%%LOCALBASE%%/bin/wget"); cmd[1] = g_strdup ("-O"); cmd[2] = g_strdup ("-"); cmd[3] = g_strdup (url); -@@ -15262,8 +15261,6 @@ +@@ -15349,8 +15347,6 @@ } cleanup_iterator (&nvts); - - malloc_trim (0); } /** +@@ -49740,8 +49736,8 @@ + */ + languages_regex + = g_regex_new ("^(Browser Language|" +- "([a-z]{2,3})(_[A-Z]{2})?(@[[:alnum:]_-]+)?" +- "(:([a-z]{2,3})(_[A-Z]{2})?(@[[:alnum:]_-]+)?)*)$", ++ "([a-z]{2,3})(_[A-Z]{2})?(@[[:alnum:]_\\-]+)?" ++ "(:([a-z]{2,3})(_[A-Z]{2})?(@[[:alnum:]_\\-]+)?)*)$", + 0, 0, NULL); + match = g_regex_match (languages_regex, value, 0, NULL); + g_regex_unref (languages_regex); +@@ -50309,7 +50305,7 @@ + if (strcmp (uuid, SETTING_UUID_LSC_DEB_MAINTAINER) == 0) + { + if (g_regex_match_simple +- ("^([[:alnum:]-_]*@[[:alnum:]-_][[:alnum:]-_.]*)?$", ++ ("^([[:alnum:]\\-_]*@[[:alnum:]\\-_][[:alnum:]\\-_.]*)?$", + value, 0, 0) == FALSE) + return 1; + } diff --git a/security/gvmd/files/patch-src_manage_sql_report_formats.c b/security/gvmd/files/patch-src_manage_sql_report_formats.c new file mode 100644 index 000000000000..fe1784255a13 --- /dev/null +++ b/security/gvmd/files/patch-src_manage_sql_report_formats.c @@ -0,0 +1,19 @@ +--- src/manage_sql_report_formats.c 2022-07-21 02:20:24.000000000 -0500 ++++ src/manage_sql_report_formats.c 2022-10-30 17:34:50.896890000 -0500 +@@ -45,7 +45,6 @@ + #include + + #include +-#include + #include + #include + +@@ -2472,7 +2471,7 @@ + case REPORT_FORMAT_PARAM_TYPE_REPORT_FORMAT_LIST: + { + if (g_regex_match_simple +- ("^(?:[[:alnum:]-_]+)?(?:,(?:[[:alnum:]-_])+)*$", value, 0, 0) ++ ("^(?:[[:alnum:]\\-_]+)?(?:,(?:[[:alnum:]\\-_])+)*$", value, 0, 0) + == FALSE) + return 1; + else diff --git a/security/gvmd/files/patch-src_utils.c b/security/gvmd/files/patch-src_utils.c index 00bcbffaace2..f70964cbd5ce 100644 --- a/security/gvmd/files/patch-src_utils.c +++ b/security/gvmd/files/patch-src_utils.c @@ -1,11 +1,20 @@ ---- src/utils.c 2020-12-31 16:52:50.534962000 -0500 -+++ src/utils.c 2020-12-31 16:52:59.759527000 -0500 +--- src/utils.c 2022-07-21 02:20:24.000000000 -0500 ++++ src/utils.c 2022-10-30 17:36:49.935808000 -0500 @@ -34,7 +34,7 @@ /** * @brief Needed for nanosleep. */ -#define _POSIX_C_SOURCE 199309L +//#define _POSIX_C_SOURCE 199309L #include "utils.h" +@@ -339,7 +339,7 @@ + epoch_time = 0; + + if (regex == NULL) +- regex = g_regex_new ("^([0-9]{4}-[0-9]{2}-[0-9]{2})" ++ regex = g_regex_new ("^([0-9]{4}\\-[0-9]{2}\\-[0-9]{2})" + "[T ]([0-9]{2}:[0-9]{2})" + "(:[0-9]{2})?(?:\\.[0-9]+)?" + "(Z|[+-][0-9]{2}:?[0-9]{2})?$",