From 5984f927ab22b6d65c010f73dbc6e1fcc0c1407c Mon Sep 17 00:00:00 2001 From: yangwei999 <348134071@qq.com> Date: Mon, 6 May 2024 11:16:50 +0800 Subject: [PATCH] add param affect update --- cve-vulner-manager/common/common.go | 1 + cve-vulner-manager/controllers/cve.go | 2 ++ cve-vulner-manager/controllers/upload.go | 10 ++++++++++ cve-vulner-manager/models/cve.go | 3 ++- cve-vulner-manager/models/modeldb.go | 15 +++++++++------ cve-vulner-manager/taskhandler/cve.go | 2 ++ 6 files changed, 26 insertions(+), 7 deletions(-) diff --git a/cve-vulner-manager/common/common.go b/cve-vulner-manager/common/common.go index 1b65e37..850cb4f 100644 --- a/cve-vulner-manager/common/common.go +++ b/cve-vulner-manager/common/common.go @@ -354,6 +354,7 @@ type CveOriginData struct { Credibility int `json:"credibility"` Patch []CveOriginPatch `json:"patch"` PackageUrl CvePackageUrl `json:"package_url"` + AffectUpdate bool `json:"affectUpdate"` } type CvePackageUrl struct { diff --git a/cve-vulner-manager/controllers/cve.go b/cve-vulner-manager/controllers/cve.go index c672824..ba56982 100644 --- a/cve-vulner-manager/controllers/cve.go +++ b/cve-vulner-manager/controllers/cve.go @@ -140,6 +140,7 @@ type CveAllIssueoData struct { User string `json:"user,omitempty"` IsIgnore int8 `json:"is_ignore"` FirstPatchTime string `json:"first_patch_time"` + AffectUpdate int8 `json:"affect_update"` } // @Title Obtain all cve data and provide operation kanban for use @@ -214,6 +215,7 @@ func (u *CveAllIssueController) Get() { User: issues.IssueCreate, IsIgnore: issues.IsIgnore, FirstPatchTime: models.QueryFirstPatchTime(issues.CveNum), + AffectUpdate: issues.AffectUpdate, } } resp["body"] = cid diff --git a/cve-vulner-manager/controllers/upload.go b/cve-vulner-manager/controllers/upload.go index 4c3bc26..bf65606 100644 --- a/cve-vulner-manager/controllers/upload.go +++ b/cve-vulner-manager/controllers/upload.go @@ -398,6 +398,11 @@ func AddOrgUpstream(source int, CveDataDict common.CveOriginData) (ResDataList [ }) } } + + if CveDataDict.AffectUpdate { + orCve.AffectUpdate = 1 + } + _, err := models.CreateOriginCve(CveDataDict, &orCve, &od, &ous, &osi, &osp, ose, osv, &osf, packageUrls) if err == nil { logs.Info("Cve original data is successfully created CveNum: ", CveDataDict.Ids) @@ -500,6 +505,11 @@ func AddOrgUpstreamRecord(source int, CveDataDict common.CveOriginData) { orCve.Status = 0 } orCve.CreateTime = common.GetCurTime() + + if CveDataDict.AffectUpdate { + orCve.AffectUpdate = 1 + } + err := models.InsertOriginCveRecord(&orCve) if err != nil { logs.Error("InsertOriginCveRecord, err: ", err) diff --git a/cve-vulner-manager/models/cve.go b/cve-vulner-manager/models/cve.go index e2ce85d..e49d2c3 100644 --- a/cve-vulner-manager/models/cve.go +++ b/cve-vulner-manager/models/cve.go @@ -1245,6 +1245,7 @@ type CveAllIssueData struct { OrganizateId int8 `orm:"column(organizate_id)"` IssueCreate string `orm:"column(issue_create)"` IsIgnore int8 `orm:"column(is_ignore)"` + AffectUpdate int8 `orm:"column(affect_update)"` } // QueryIssue query issuewhitelist @@ -1253,7 +1254,7 @@ func QueryCveAllIssueData(currentPage, pageSize, communityFlag int, startTime st o := orm.NewOrm() var sql = `SELECT t.cve_num, t.nvd_score, t.openeuler_score, t.issue_num, t.affected_version,t.owned_version,t.is_ignore, t.owned_component,t.owner,t.repo,t.cve_level,t.create_time,v.repair_time,s.sa_release_time,s.rpm_release_time,v.first_per_time, -v.first_get_time,o.issue_create FROM cve_vuln_center v,cve_issue_template t left join cve_issue_template_association s +v.first_get_time,v.affect_update,o.issue_create FROM cve_vuln_center v,cve_issue_template t left join cve_issue_template_association s on t.template_id = s.template_id left join cve_gite_origin_issue o on t.issue_num = o.number and t.issue_id = o.issue_id where t.status != 6 and t.cve_id = v.cve_id %s order by t.update_time desc limit ? offset ?` if len(startTime) > 2 { diff --git a/cve-vulner-manager/models/modeldb.go b/cve-vulner-manager/models/modeldb.go index e7ef2f7..5a31a4c 100644 --- a/cve-vulner-manager/models/modeldb.go +++ b/cve-vulner-manager/models/modeldb.go @@ -74,6 +74,7 @@ type VulnCenter struct { DataSource int8 `orm:"default(1);column(data_source)" description:"1:软件所提供;2:网络爬取;3:人工处理; 4:兼容之前的数据; 5:majun提供"` CveDetailUrl string `orm:"type(text);column(cve_detail_url)" description:"cve详情链接"` OrganizationID int8 `orm:"default(1);column(organizate_id)" description:"默认值为:1,1:来源openEuler;2:来源opengauss;3:来源mindspore;4:来源openLooKeng"` + AffectUpdate int8 `orm:"default(0);column(affect_update)" description:"表示影响组件内容是否更新,1为有更新,0为无更新"` CreateTime time.Time `orm:"auto_now_add;type(datetime);column(create_time)"` UpdateTime time.Time `orm:"auto_now;type(datetime);column(update_time)"` DeleteTime time.Time `orm:"auto_now;type(datetime);column(delete_time)"` @@ -351,10 +352,11 @@ type OriginUpstream struct { 4:包名版本号通过SA获取、版本号为修复版本号、修复版本以下都视为受影响版本; 5:包名版本号通过SA获取并通过别名匹配、版本号为修复版本号、修复版本以下都视为受影响版本; 6:版本号未匹配、包名通过以上任意方式匹配、可信度最低"` - Source int `orm:"default(0);column(source)" description:"漏洞来源,0: Vtopia; 1: Majun"` - CreateTime string `orm:"size(32);column(create_time)"` - UpdateTime string `orm:"size(32);column(update_time);null"` - DeleteTime string `orm:"size(32);column(delete_time);null"` + Source int `orm:"default(0);column(source)" description:"漏洞来源,0: Vtopia; 1: Majun"` + AffectUpdate int8 `orm:"default(0);column(affect_update)" description:"表示影响组件内容是否更新,1为有更新,0为无更新"` + CreateTime string `orm:"size(32);column(create_time)"` + UpdateTime string `orm:"size(32);column(update_time);null"` + DeleteTime string `orm:"size(32);column(delete_time);null"` } type OriginUpstreamDesc struct { @@ -1013,8 +1015,9 @@ type OriginUpstreamRecord struct { CreateTime string `orm:"size(32);column(create_time)"` SysStatus int8 `orm:"default(0);column(sys_status)" description:"0:cve新增;1:数据已变化; 2:数据已处理;3:错误数据;4:版本信息错误;5:cve年份不符合要求;6:低可信度数据已发邮件"` - ErrDesc string `orm:"null;type(text);column(err_desc);null" description:"数据同步失败的错误描述"` - Source int `orm:"default(0);column(source)" description:"漏洞来源,0: Vtopia; 1: Majun"` + ErrDesc string `orm:"null;type(text);column(err_desc);null" description:"数据同步失败的错误描述"` + Source int `orm:"default(0);column(source)" description:"漏洞来源,0: Vtopia; 1: Majun"` + AffectUpdate int8 `orm:"default(0);column(affect_update)" description:"表示影响组件内容是否更新,1为有更新,0为无更新"` } type OpenLookengSecurityReviewer struct { diff --git a/cve-vulner-manager/taskhandler/cve.go b/cve-vulner-manager/taskhandler/cve.go index de1f918..6abc2d6 100644 --- a/cve-vulner-manager/taskhandler/cve.go +++ b/cve-vulner-manager/taskhandler/cve.go @@ -661,6 +661,8 @@ func InsertCveGroups(cveData models.OriginUpstream, cveRef, repoNme string, } vul.IsExport = 0 vul.OrganizationID = organizationID + vul.AffectUpdate = cveData.AffectUpdate + var sec models.SecurityNotice sec.CveNum = cveData.CveNum sec.InfluenceComponent = pkList[0] -- Gitee