New Packages: - secubox-cve-triage: AI-powered CVE analysis and vulnerability management - NVD API integration for CVE data - CrowdSec CVE alert correlation - LocalAI-powered impact analysis - Approval workflow for patch recommendations - Multi-source monitoring (opkg, LXC, Docker) - luci-app-cve-triage: Dashboard with alerts, pending queue, risk score - secubox-vortex-dns: Meshed multi-dynamic subdomain delegation - Master/slave hierarchical DNS delegation - Wildcard domain management - First Peek auto-registration - Gossip-based exposure config sync - Submastering for nested hierarchies Fixes: - Webmail 401 login: config.docker.inc.php was overriding IMAP host to ssl://mail.secubox.in:993 which Docker couldn't reach - Fixed mailctl webmail configure to use socat proxy (172.17.0.1:10143) Documentation: - Added LXC cgroup:mixed fix to FAQ-TROUBLESHOOTING.md - Updated CLAUDE.md to include FAQ consultation at startup Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
102 lines
1.8 KiB
JavaScript
102 lines
1.8 KiB
JavaScript
'use strict';
|
|
'require rpc';
|
|
'require baseclass';
|
|
|
|
return baseclass.extend({
|
|
callStatus: rpc.declare({
|
|
object: 'luci.cve-triage',
|
|
method: 'status',
|
|
expect: {}
|
|
}),
|
|
|
|
callGetPending: rpc.declare({
|
|
object: 'luci.cve-triage',
|
|
method: 'get_pending',
|
|
expect: {}
|
|
}),
|
|
|
|
callGetAlerts: rpc.declare({
|
|
object: 'luci.cve-triage',
|
|
method: 'get_alerts',
|
|
expect: {}
|
|
}),
|
|
|
|
callGetRecommendations: rpc.declare({
|
|
object: 'luci.cve-triage',
|
|
method: 'get_recommendations',
|
|
params: ['limit'],
|
|
expect: {}
|
|
}),
|
|
|
|
callGetSummary: rpc.declare({
|
|
object: 'luci.cve-triage',
|
|
method: 'get_summary',
|
|
expect: {}
|
|
}),
|
|
|
|
callRun: rpc.declare({
|
|
object: 'luci.cve-triage',
|
|
method: 'run',
|
|
expect: {}
|
|
}),
|
|
|
|
callApprove: rpc.declare({
|
|
object: 'luci.cve-triage',
|
|
method: 'approve',
|
|
params: ['id'],
|
|
expect: {}
|
|
}),
|
|
|
|
callReject: rpc.declare({
|
|
object: 'luci.cve-triage',
|
|
method: 'reject',
|
|
params: ['id', 'reason'],
|
|
expect: {}
|
|
}),
|
|
|
|
callApproveAll: rpc.declare({
|
|
object: 'luci.cve-triage',
|
|
method: 'approve_all',
|
|
expect: {}
|
|
}),
|
|
|
|
callClearPending: rpc.declare({
|
|
object: 'luci.cve-triage',
|
|
method: 'clear_pending',
|
|
expect: {}
|
|
}),
|
|
|
|
callAckAlert: rpc.declare({
|
|
object: 'luci.cve-triage',
|
|
method: 'ack_alert',
|
|
params: ['id'],
|
|
expect: {}
|
|
}),
|
|
|
|
getSeverityClass: function(severity) {
|
|
switch (severity) {
|
|
case 'critical': return 'danger';
|
|
case 'high': return 'warning';
|
|
case 'medium': return 'primary';
|
|
default: return 'secondary';
|
|
}
|
|
},
|
|
|
|
getSeverityIcon: function(severity) {
|
|
switch (severity) {
|
|
case 'critical': return '\u26A0';
|
|
case 'high': return '\u2757';
|
|
case 'medium': return '\u2139';
|
|
default: return '\u2022';
|
|
}
|
|
},
|
|
|
|
formatCVE: function(cve) {
|
|
return E('a', {
|
|
'href': 'https://nvd.nist.gov/vuln/detail/' + cve,
|
|
'target': '_blank',
|
|
'class': 'cve-link'
|
|
}, cve);
|
|
}
|
|
});
|