├── data ├── apple │ ├── data │ │ └── .gitkeep │ └── README.md ├── google │ ├── data │ │ └── .gitkeep │ └── README.md ├── microsoft │ ├── data │ │ └── .gitkeep │ └── README.md ├── oracle │ ├── data │ │ └── .gitkeep │ └── README.md ├── qualcomm │ ├── data │ │ └── .gitkeep │ └── README.md ├── intel │ └── README.md ├── nvidia │ ├── README.md │ └── data │ │ ├── raw_data.json │ │ └── dalao.json └── namelist.json ├── install.sh ├── scraper ├── __init__.py ├── apple.py ├── google.py ├── oracle.py ├── qualcomm.py ├── microsoft.py ├── nvidia.py └── intel.py ├── README.md ├── .github └── workflows │ └── action.yml ├── LICENSE ├── utils.py ├── main.py └── .gitignore /data/apple/data/.gitkeep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /data/google/data/.gitkeep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /data/microsoft/data/.gitkeep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /data/oracle/data/.gitkeep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /data/qualcomm/data/.gitkeep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /data/apple/README.md: -------------------------------------------------------------------------------- 1 | # Apple Top 100 2 | -------------------------------------------------------------------------------- /data/google/README.md: -------------------------------------------------------------------------------- 1 | # Google Top 100 2 | -------------------------------------------------------------------------------- /data/oracle/README.md: -------------------------------------------------------------------------------- 1 | # Oracle Top 100 2 | -------------------------------------------------------------------------------- /data/qualcomm/README.md: -------------------------------------------------------------------------------- 1 | # Qualcomm Top 100 2 | -------------------------------------------------------------------------------- /install.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | python3 -m pip install requests colorama lxml spacy 4 | python3 -m spacy download en_core_web_md 5 | -------------------------------------------------------------------------------- /scraper/__init__.py: -------------------------------------------------------------------------------- 1 | from scraper.apple import Apple 2 | from scraper.google import Google 3 | from scraper.intel import Intel 4 | from scraper.microsoft import Microsoft 5 | from scraper.nvidia import Nvidia 6 | from scraper.oracle import Oracle 7 | from scraper.qualcomm import Qualcomm 8 | -------------------------------------------------------------------------------- /scraper/apple.py: -------------------------------------------------------------------------------- 1 | import sys 2 | import json 3 | from pathlib import Path 4 | 5 | sys.path.append('..') 6 | from utils import Color 7 | 8 | 9 | class Apple: 10 | def __init__(self, data_path: Path, download: bool=False) -> None: 11 | self.data_path = data_path 12 | if download: 13 | self.data = self.download() 14 | else: 15 | with open(self.data_path.joinpath('acknowledgement.json'), 'r') as f: 16 | self.data = json.load(f) 17 | 18 | def download(self): 19 | pass 20 | 21 | def get_dalao(self): 22 | pass 23 | 24 | def update_readme(self): 25 | pass 26 | -------------------------------------------------------------------------------- /scraper/google.py: -------------------------------------------------------------------------------- 1 | import sys 2 | import json 3 | from pathlib import Path 4 | 5 | sys.path.append('..') 6 | from utils import Color 7 | 8 | 9 | class Google: 10 | def __init__(self, data_path: Path, download: bool=False) -> None: 11 | self.data_path = data_path 12 | if download: 13 | self.data = self.download() 14 | else: 15 | with open(self.data_path.joinpath('acknowledgement.json'), 'r') as f: 16 | self.data = json.load(f) 17 | 18 | def download(self): 19 | pass 20 | 21 | def get_dalao(self): 22 | pass 23 | 24 | def update_readme(self): 25 | pass 26 | -------------------------------------------------------------------------------- /scraper/oracle.py: -------------------------------------------------------------------------------- 1 | import sys 2 | import json 3 | from pathlib import Path 4 | 5 | sys.path.append('..') 6 | from utils import Color 7 | 8 | 9 | class Oracle: 10 | def __init__(self, data_path: Path, download: bool=False) -> None: 11 | self.data_path = data_path 12 | if download: 13 | self.data = self.download() 14 | else: 15 | with open(self.data_path.joinpath('acknowledgement.json'), 'r') as f: 16 | self.data = json.load(f) 17 | 18 | def download(self): 19 | url = 'https://www.oracle.com/security-alerts' 20 | 21 | def get_dalao(self): 22 | pass 23 | 24 | def update_readme(self): 25 | pass 26 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # SecurityDalao 2 | 3 | 安全大佬 Top 100 4 | 5 | > 只是一个突发奇想,包含 Top 100 和历年 Top 10,仅用作膜拜Orz,不具有权威性。 6 | > 7 | > 数据来自爬虫,每月自动更新,当前版本:2022-04-18 8 | > 9 | > 欢迎添加各种子榜~ 10 | 11 | ```sh 12 | $ ./install.sh # 安装 13 | 14 | $ ./main.py # 仅更新数据 15 | $ ./main.py --readme # 更新数据和README 16 | ``` 17 | 18 | ## Top 100 19 | 20 | - Apple 21 | - Google 22 | - [Intel](data/intel/README.md) 23 | - [Microsoft](data/microsoft/README.md) 24 | - [Nvidia](data/nvidia/README.md) 25 | - Oracle 26 | - [Qualcomm](data/qualcomm/README.md) 27 | 28 | ## LICENSE 29 | 30 | SecurityDalao use SATA(Star And Thank Author) [License](./LICENSE), so you have to star this project before using. 🙏 31 | 32 | [![Stargazers over time](https://starchart.cc/firmianay/SecurityDalao.svg)](https://starchart.cc/firmianay/SecurityDalao) 33 | -------------------------------------------------------------------------------- /.github/workflows/action.yml: -------------------------------------------------------------------------------- 1 | # https://docs.github.com/cn/actions/automating-builds-and-tests/building-and-testing-python 2 | 3 | name: Update repo 4 | 5 | # on: 6 | # schedule: 7 | # - cron: "* 4 1 * *" 8 | on: 9 | workflow_dispatch 10 | 11 | jobs: 12 | build: 13 | runs-on: ubuntu-latest 14 | steps: 15 | - uses: actions/checkout@v3 16 | - name: Set up Python 17 | uses: actions/setup-python@v3 18 | with: 19 | python-version: '3.x' 20 | - name: Install dependencies 21 | run: ./install.sh 22 | 23 | - name: Update data 24 | run: python main.py --readme 25 | 26 | - name: Commit 27 | run: | 28 | git config --global user.email firmianay@gmail.com 29 | git config --global user.name firmianay 30 | git add * 31 | git commit -m "Update: `date +'%Y-%m-%d'`" 32 | 33 | - name: Push changes 34 | uses: ad-m/github-push-action@master 35 | with: 36 | github_token: ${{ secrets.GITHUB_TOKEN }} 37 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | The Star And Thank Author License (SATA) 2 | 3 | Copyright (c) 2020 Firmy Yang 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | And wait, the most important, you shall star/+1/like the project(s) in project url 16 | section above first, and then thank the author(s) in Copyright section. 17 | 18 | Here are some suggested ways: 19 | 20 | - Email the authors a thank-you letter, and make friends with him/her/them. 21 | - Report bugs or issues. 22 | - Tell friends what a wonderful project this is. 23 | - And, sure, you can just express thanks in your mind without telling the world. 24 | 25 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 26 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 27 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 28 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 29 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 30 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 31 | SOFTWARE. 32 | -------------------------------------------------------------------------------- /utils.py: -------------------------------------------------------------------------------- 1 | import copy 2 | import pprint 3 | from colorama import Fore 4 | 5 | 6 | class Color: 7 | @staticmethod 8 | def print_focus(data: str): 9 | print(Fore.YELLOW+data+Fore.RESET) 10 | 11 | @staticmethod 12 | def print_success(data: str): 13 | print(Fore.LIGHTGREEN_EX+data+Fore.RESET) 14 | 15 | @staticmethod 16 | def print_failed(data: str): 17 | print(Fore.LIGHTRED_EX+data+Fore.RESET) 18 | 19 | @staticmethod 20 | def print(data): 21 | pprint.pprint(data) 22 | 23 | 24 | class Readme: 25 | @staticmethod 26 | def get_dalao_top(dalao: dict, num: int) -> list({str, dict}): 27 | """取出top大佬""" 28 | dalao_top = sorted(list(dalao.items()), key=lambda r: len(r[1]['cve']), reverse=True) 29 | return dalao_top[:num] 30 | 31 | @staticmethod 32 | def make_table(dalao: list): 33 | """Markdown表格""" 34 | content = '' 35 | for idx, (name, value) in enumerate(dalao): 36 | if value['url']: 37 | content += f'| {idx+1} | [{name}]({value["url"]}) | {len(value["cve"])} |\n' 38 | else: 39 | content += f'| {idx+1} | {name} | {len(value["cve"])} |\n' 40 | return content 41 | 42 | @staticmethod 43 | def get_first_year(dalao: dict) -> int: 44 | """找到最早的年份""" 45 | cve = [] 46 | for v in dalao.values(): 47 | cve += v['cve'] 48 | first_year = sorted(cve)[0].split('-')[1] 49 | return int(first_year) 50 | 51 | @staticmethod 52 | def get_year_dalao(dalao: dict, year: int) -> dict: 53 | """取出年度大佬""" 54 | temp = copy.deepcopy(dalao) 55 | for v in list(temp.items()): 56 | if new_cve := [cve for cve in v[1]['cve'] if cve.startswith(f'CVE-{year}')]: 57 | temp[v[0]]['cve'] = new_cve 58 | else: 59 | temp.pop(v[0]) 60 | return temp 61 | -------------------------------------------------------------------------------- /main.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/python3 2 | 3 | import argparse 4 | from pathlib import Path 5 | from datetime import datetime 6 | 7 | from scraper import * 8 | 9 | 10 | def update_date(): 11 | readme = root_path.joinpath('README.md') 12 | with open(readme, 'r') as f: 13 | new_data = '' 14 | for line in f.readlines(): 15 | if '当前版本' in line: 16 | current = datetime.now().strftime('%Y-%m-%d') 17 | new_data += f'> 数据来自爬虫,每月自动更新,当前版本:{current}\n' 18 | else: 19 | new_data += line 20 | 21 | with open(readme, 'w+') as f: 22 | f.write(new_data) 23 | 24 | 25 | def argument(): 26 | parser = argparse.ArgumentParser() 27 | parser.add_argument('--readme', help='also update readme', action='store_true',required=False) 28 | return parser.parse_args() 29 | 30 | 31 | if __name__ == '__main__': 32 | args = argument() 33 | 34 | root_path = Path(__file__).absolute().parent 35 | data_path = root_path.joinpath('data') 36 | 37 | plugin = { 38 | 'apple': False, 39 | 'google': False, 40 | 'intel': False, 41 | 'microsoft': False, 42 | 'nvidia': False, 43 | 'oracle': False, 44 | 'qualcomm': True 45 | } 46 | 47 | if plugin['apple']: 48 | pass # TODO 49 | 50 | if plugin['google']: 51 | pass # TODO 52 | 53 | if plugin['intel']: 54 | intel = Intel(data_path.joinpath('intel'), download=True) 55 | data = intel.get_dalao() 56 | 57 | if args.readme: 58 | intel.update_readme(data) 59 | 60 | if plugin['microsoft']: 61 | microsoft = Microsoft(data_path.joinpath('microsoft'), download=True) 62 | data = microsoft.get_dalao() 63 | 64 | if args.readme: 65 | microsoft.update_readme(data) 66 | 67 | if plugin['nvidia']: 68 | nvidia = Nvidia(data_path.joinpath('nvidia'), download=True) 69 | data = nvidia.get_dalao() 70 | 71 | if args.readme: 72 | nvidia.update_readme(data) 73 | 74 | if plugin['oracle']: 75 | pass # TODO 76 | 77 | if plugin['qualcomm']: 78 | qualcomm = Qualcomm(data_path.joinpath('qualcomm'), download=True) 79 | data = qualcomm.get_dalao() 80 | 81 | if args.readme: 82 | qualcomm.update_readme(data) 83 | 84 | update_date() 85 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Byte-compiled / optimized / DLL files 2 | __pycache__/ 3 | *.py[cod] 4 | *$py.class 5 | 6 | # C extensions 7 | *.so 8 | 9 | # Distribution / packaging 10 | .Python 11 | build/ 12 | develop-eggs/ 13 | dist/ 14 | downloads/ 15 | eggs/ 16 | .eggs/ 17 | lib/ 18 | lib64/ 19 | parts/ 20 | sdist/ 21 | var/ 22 | wheels/ 23 | pip-wheel-metadata/ 24 | share/python-wheels/ 25 | *.egg-info/ 26 | .installed.cfg 27 | *.egg 28 | MANIFEST 29 | 30 | # PyInstaller 31 | # Usually these files are written by a python script from a template 32 | # before PyInstaller builds the exe, so as to inject date/other infos into it. 33 | *.manifest 34 | *.spec 35 | 36 | # Installer logs 37 | pip-log.txt 38 | pip-delete-this-directory.txt 39 | 40 | # Unit test / coverage reports 41 | htmlcov/ 42 | .tox/ 43 | .nox/ 44 | .coverage 45 | .coverage.* 46 | .cache 47 | nosetests.xml 48 | coverage.xml 49 | *.cover 50 | *.py,cover 51 | .hypothesis/ 52 | .pytest_cache/ 53 | 54 | # Translations 55 | *.mo 56 | *.pot 57 | 58 | # Django stuff: 59 | *.log 60 | local_settings.py 61 | db.sqlite3 62 | db.sqlite3-journal 63 | 64 | # Flask stuff: 65 | instance/ 66 | .webassets-cache 67 | 68 | # Scrapy stuff: 69 | .scrapy 70 | 71 | # Sphinx documentation 72 | docs/_build/ 73 | 74 | # PyBuilder 75 | target/ 76 | 77 | # Jupyter Notebook 78 | .ipynb_checkpoints 79 | 80 | # IPython 81 | profile_default/ 82 | ipython_config.py 83 | 84 | # pyenv 85 | .python-version 86 | 87 | # pipenv 88 | # According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control. 89 | # However, in case of collaboration, if having platform-specific dependencies or dependencies 90 | # having no cross-platform support, pipenv may install dependencies that don't work, or not 91 | # install all needed dependencies. 92 | #Pipfile.lock 93 | 94 | # PEP 582; used by e.g. github.com/David-OConnor/pyflow 95 | __pypackages__/ 96 | 97 | # Celery stuff 98 | celerybeat-schedule 99 | celerybeat.pid 100 | 101 | # SageMath parsed files 102 | *.sage.py 103 | 104 | # Environments 105 | .env 106 | .venv 107 | env/ 108 | venv/ 109 | ENV/ 110 | env.bak/ 111 | venv.bak/ 112 | 113 | # Spyder project settings 114 | .spyderproject 115 | .spyproject 116 | 117 | # Rope project settings 118 | .ropeproject 119 | 120 | # mkdocs documentation 121 | /site 122 | 123 | # mypy 124 | .mypy_cache/ 125 | .dmypy.json 126 | dmypy.json 127 | 128 | # Pyre type checker 129 | .pyre/ 130 | -------------------------------------------------------------------------------- /scraper/qualcomm.py: -------------------------------------------------------------------------------- 1 | import json 2 | import requests 3 | from pathlib import Path 4 | from datetime import datetime 5 | from bs4 import BeautifulSoup 6 | from collections import defaultdict 7 | from concurrent.futures import ThreadPoolExecutor, as_completed 8 | 9 | import sys 10 | sys.path.append('..') 11 | from utils import Color, Readme 12 | 13 | import spacy 14 | nlp = spacy.load('en_core_web_md') 15 | 16 | 17 | class Qualcomm: 18 | def __init__(self, local_path: Path, download: bool=False) -> None: 19 | self.local_path = local_path 20 | self.raw_path = local_path.joinpath('data/raw_data.json') 21 | self.dalao_path = local_path.joinpath('data/dalao.json') 22 | 23 | with open(local_path.parent.joinpath('namelist.json'), 'r') as f: 24 | self.namelist = json.load(f) 25 | 26 | if download: 27 | self.data = self.download() 28 | else: 29 | with open(self.raw_path, 'r') as f: 30 | self.data = json.load(f) 31 | 32 | @staticmethod 33 | def downloadThread(url: str): 34 | Color.print_focus(url) 35 | r = requests.get(url) 36 | soup = BeautifulSoup(r.content, 'html.parser') 37 | 38 | def download(self): 39 | base_url = 'https://www.qualcomm.com/company/product-security/bulletins' 40 | urls = [] 41 | with ThreadPoolExecutor(1) as executor: 42 | tasks = [executor.submit(Qualcomm.downloadThread, url) for url in urls] 43 | result = [task.result() for task in as_completed(tasks) if task.result()] 44 | 45 | with open(self.raw_path, 'w+') as f: 46 | f.write(json.dumps(result, indent=4)) 47 | Color.print_success(f'[+] download: {self.raw_path}') 48 | 49 | def get_dalao(self): 50 | dalao = defaultdict(lambda: defaultdict(list)) 51 | 52 | with open(self.dalao_path, 'w+') as f: 53 | f.write(json.dumps(dalao, indent=4)) 54 | Color.print_success(f'[+] dalao: {self.dalao_path}') 55 | return dalao 56 | 57 | def update_readme(self, dalao=None): 58 | if not dalao: 59 | with open(self.dalao_path, 'r') as f: 60 | dalao = json.load(f) 61 | 62 | content = '# Qualcomm Top 100\n\n' 63 | content += '数据来源:https://www.qualcomm.com/company/product-security/bulletins\n\n' 64 | 65 | # 总榜 66 | dalao_top = Readme.get_dalao_top(dalao, 100) 67 | content += '## Top 100\n\n' 68 | content += '| 排名 | 姓名 | CVE数量 |\n| --- | --- | --- |\n' 69 | content += Readme.make_table(dalao_top) 70 | 71 | # 历年 72 | first_year = Readme.get_first_year(dalao) 73 | for year in range(int(datetime.now().strftime('%Y')), first_year-1, -1): 74 | content += f'\n## {year} Top 10\n\n' 75 | content += '| 排名 | 姓名 | CVE数量 |\n| --- | --- | --- |\n' 76 | year_dalao = Readme.get_year_dalao(dalao, year) 77 | dalao_top = Readme.get_dalao_top(year_dalao, 10) 78 | content += Readme.make_table(dalao_top) 79 | 80 | readme = self.local_path.joinpath('README.md') 81 | with open(readme, 'w+') as f: 82 | f.write(content) 83 | Color.print_success(f'[+] update readme: {readme}') 84 | -------------------------------------------------------------------------------- /scraper/microsoft.py: -------------------------------------------------------------------------------- 1 | import sys 2 | import json 3 | import requests 4 | from lxml import etree 5 | from pathlib import Path 6 | from datetime import datetime 7 | from collections import defaultdict 8 | 9 | sys.path.append('..') 10 | from utils import Color, Readme 11 | 12 | import spacy 13 | nlp = spacy.load('en_core_web_md') 14 | 15 | 16 | class Microsoft: 17 | def __init__(self, local_path: Path, download: bool=False) -> None: 18 | self.local_path = local_path 19 | self.raw_path = local_path.joinpath('data/raw_data.json') 20 | self.dalao_path = local_path.joinpath('data/dalao.json') 21 | 22 | with open(local_path.parent.joinpath('namelist.json'), 'r') as f: 23 | self.namelist = json.load(f) 24 | 25 | if download: 26 | self.data = self.download() 27 | else: 28 | with open(self.raw_path, 'r') as f: 29 | self.data = json.load(f) 30 | 31 | def download(self): 32 | start_date = '2016-01-01' 33 | end_date = datetime.now().strftime('%Y-%m-%d') 34 | 35 | result = [] 36 | for skip in range(0, 100000, 500): 37 | url = f'https://api.msrc.microsoft.com/sug/v2.0/en-US/acknowledgement?$orderby=releaseDate desc&$filter=(releaseDate gt {start_date}T00%3A00%3A00%2B08%3A00) and (releaseDate lt {end_date}T23%3A59%3A59%2B08%3A00)&$skip={skip}' 38 | if value := requests.get(url).json()['value']: 39 | result += value 40 | else: 41 | break 42 | 43 | with open(self.raw_path, 'w+') as f: 44 | f.write(json.dumps(result, indent=4)) 45 | Color.print_success(f'[+] download: {self.raw_path}') 46 | return result 47 | 48 | def get_dalao(self): 49 | type_data = [item for item in self.data if item.get('cveNumber') and item['cveNumber'].startswith('CVE')] 50 | 51 | result = {} 52 | for item in type_data: 53 | cve = item['cveNumber'] 54 | acktext = item.get('ackText') 55 | if not acktext: 56 | continue 57 | 58 | dalao_text = str(etree.HTML(acktext).xpath('string(.)')) 59 | doc = nlp(dalao_text) 60 | dalao = [i.text for i in doc.ents if i.label_ == 'PERSON'] 61 | if not dalao: # 尝试补救一下 62 | dalao = [dalao_text.strip()] 63 | for i in ['working with', ' from ', ' of ', ' with ', ' in ']: 64 | if i.casefold() in dalao_text: 65 | dalao = [dalao_text.split(i.casefold())[0].split('(')[0].split('@')[0].strip()] 66 | 67 | # print(dalao_text, cve) 68 | # print(dalao) 69 | if cve and dalao: 70 | for name in dalao: 71 | if result.get(name): 72 | result[name]['cve'].append(cve) 73 | else: 74 | result[name] = { 75 | 'url': self.namelist.get(name), 76 | 'cve': [cve] 77 | } 78 | 79 | with open(self.dalao_path, 'w+') as f: 80 | f.write(json.dumps(result, indent=4)) 81 | Color.print_success(f'[+] dalao: {self.dalao_path}') 82 | return result 83 | 84 | def update_readme(self, dalao=None): 85 | if not dalao: 86 | with open(self.dalao_path, 'r') as f: 87 | dalao = json.load(f) 88 | 89 | content = '# Microsoft Top 100\n\n' 90 | content += '数据来源:https://msrc.microsoft.com/update-guide/acknowledgement\n\n' 91 | 92 | # 总榜 93 | dalao_top = Readme.get_dalao_top(dalao, 100) 94 | content += '## Top 100\n\n' 95 | content += '| 排名 | 姓名 | CVE数量 |\n| --- | --- | --- |\n' 96 | content += Readme.make_table(dalao_top) 97 | 98 | # 历年 99 | first_year = Readme.get_first_year(dalao) 100 | for year in range(int(datetime.now().strftime('%Y')), first_year-1, -1): 101 | content += f'\n## {year} Top 10\n\n' 102 | content += '| 排名 | 姓名 | CVE数量 |\n| --- | --- | --- |\n' 103 | year_dalao = Readme.get_year_dalao(dalao, year) 104 | dalao_top = Readme.get_dalao_top(year_dalao, 10) 105 | content += Readme.make_table(dalao_top) 106 | 107 | readme = self.local_path.joinpath('README.md') 108 | with open(readme, 'w+') as f: 109 | f.write(content) 110 | Color.print_success(f'[+] update readme: {readme}') 111 | -------------------------------------------------------------------------------- /scraper/nvidia.py: -------------------------------------------------------------------------------- 1 | import json 2 | import requests 3 | from pathlib import Path 4 | from datetime import datetime 5 | from bs4 import BeautifulSoup 6 | from collections import defaultdict 7 | 8 | import sys 9 | 10 | from requests import request 11 | sys.path.append('..') 12 | from utils import Color, Readme 13 | 14 | import spacy 15 | nlp = spacy.load('en_core_web_md') 16 | 17 | class Nvidia: 18 | def __init__(self, local_path: Path, download: bool=False) -> None: 19 | self.local_path = local_path 20 | self.raw_path = local_path.joinpath('data/raw_data.json') 21 | self.dalao_path = local_path.joinpath('data/dalao.json') 22 | 23 | with open(local_path.parent.joinpath('namelist.json'), 'r') as f: 24 | self.namelist = json.load(f) 25 | 26 | if download: 27 | self.data = self.download() 28 | else: 29 | with open(self.raw_path, 'r') as f: 30 | self.data = json.load(f) 31 | 32 | def download(self): 33 | results = [] 34 | 35 | r = requests.get('https://www.nvidia.com/en-us/security/acknowledgements') 36 | soup = BeautifulSoup(r.content, 'html.parser') 37 | found = soup.find_all('li', class_='accordion item') 38 | for item in found: 39 | year = item.find('h4').get_text() 40 | trs = item.find_all('tr')[1:] 41 | result = {'year': year} 42 | for tr in trs: 43 | tds = tr.find_all('td') 44 | if len(tds) > 1: 45 | cve_text = tds[1].get_text().replace('\u2011', '\u002d').strip() # https://www.fileformat.info/info/unicode/char/002d/index.htm 46 | if ',' in cve_text: 47 | cve = [i.strip() for i in cve_text.split(',') if i.strip().startswith('CVE')] 48 | elif ' ' in cve_text: 49 | cve = [i for i in cve_text.split() if i.startswith('CVE')] 50 | else: 51 | cve = [cve_text] 52 | name = tds[0].get_text() 53 | doc = nlp(name) 54 | dalao = [i.text for i in doc.ents if i.label_ == 'PERSON'] 55 | if not dalao and ('of' in name or ',' in name): # 尝试补救一下 56 | dalao = [name.split('of')[0].split(',')[0].strip()] 57 | if cve and dalao: 58 | result.update({name: cve for name in dalao}) 59 | results.append(result) 60 | 61 | with open(self.raw_path, 'w+') as f: 62 | f.write(json.dumps(results, indent=4, ensure_ascii=False)) 63 | Color.print_success(f'[+] download: {self.raw_path}') 64 | return results 65 | 66 | def get_dalao(self): 67 | dalao = defaultdict(lambda: defaultdict(list)) 68 | for item in self.data: 69 | for name, value in item.items(): 70 | if name != 'year': 71 | dalao[name]['url'] = self.namelist.get(name) 72 | dalao[name]['cve'].extend(value) 73 | 74 | with open(self.dalao_path, 'w+') as f: 75 | f.write(json.dumps(dalao, indent=4, ensure_ascii=False)) 76 | Color.print_success(f'[+] dalao: {self.dalao_path}') 77 | return dalao 78 | 79 | def update_readme(self, dalao=None): 80 | if not dalao: 81 | with open(self.dalao_path, 'r') as f: 82 | dalao = json.load(f) 83 | 84 | content = '# Nvidia Top 100\n\n' 85 | content += '数据来源:https://www.nvidia.com/en-us/security/acknowledgements\n\n' 86 | 87 | # 总榜 88 | dalao_top = Readme.get_dalao_top(dalao, 100) 89 | content += '## Top 100\n\n' 90 | content += '| 排名 | 姓名 | CVE数量 |\n| --- | --- | --- |\n' 91 | content += Readme.make_table(dalao_top) 92 | 93 | # 历年 94 | first_year = Readme.get_first_year(dalao) 95 | for year in range(int(datetime.now().strftime('%Y')), first_year-1, -1): 96 | content += f'\n## {year} Top 10\n\n' 97 | content += '| 排名 | 姓名 | CVE数量 |\n| --- | --- | --- |\n' 98 | year_dalao = Readme.get_year_dalao(dalao, year) 99 | dalao_top = Readme.get_dalao_top(year_dalao, 10) 100 | content += Readme.make_table(dalao_top) 101 | 102 | readme = self.local_path.joinpath('README.md') 103 | with open(readme, 'w+') as f: 104 | f.write(content) 105 | Color.print_success(f'[+] update readme: {readme}') 106 | -------------------------------------------------------------------------------- /scraper/intel.py: -------------------------------------------------------------------------------- 1 | import re 2 | import json 3 | import string 4 | import requests 5 | from lxml import etree 6 | from pathlib import Path 7 | from datetime import datetime 8 | from bs4 import BeautifulSoup 9 | from collections import defaultdict 10 | from concurrent.futures import ThreadPoolExecutor, as_completed 11 | 12 | import sys 13 | sys.path.append('..') 14 | from utils import Color, Readme 15 | 16 | import spacy 17 | nlp = spacy.load('en_core_web_md') 18 | 19 | 20 | class Intel: 21 | def __init__(self, local_path: Path, download: bool=False) -> None: 22 | self.local_path = local_path 23 | self.raw_path = local_path.joinpath('data/raw_data.json') 24 | self.dalao_path = local_path.joinpath('data/dalao.json') 25 | 26 | with open(local_path.parent.joinpath('namelist.json'), 'r') as f: 27 | self.namelist = json.load(f) 28 | 29 | if download: 30 | self.data = self.download() 31 | else: 32 | with open(self.raw_path, 'r') as f: 33 | self.data = json.load(f) 34 | 35 | @staticmethod 36 | def downloadThread(url: str): 37 | Color.print_focus(url) 38 | r = requests.get(url) 39 | soup = BeautifulSoup(r.content, 'html.parser') 40 | 41 | found_cve = soup.find_all(string=re.compile('^CVE*')) # CVEID:, CVE- 42 | cve = [] 43 | for i in found_cve: 44 | if text := re.findall('CVE-\d+.-\d+.', i.get_text()): 45 | cve.append(text[0]) 46 | 47 | try: 48 | dalao = [] 49 | found_dalao = soup.find(string=re.compile('^Acknowledgements*')).find_previous().find_next_siblings('p') 50 | print(found_dalao) 51 | for line in found_dalao: 52 | dalao_text = line.get_text() 53 | doc = nlp(dalao_text) 54 | dalao.extend([i.text for i in doc.ents if i.label_ == 'PERSON']) 55 | if not dalao and 'thank' in dalao_text and 'for' in dalao_text: # 尝试补救一下 56 | name = dalao_text.split('thank')[1].split('for')[0].split('(')[0].strip() 57 | dalao.append(name) 58 | except Exception as e: 59 | print(e) 60 | 61 | print(cve, dalao) 62 | if cve and dalao: 63 | return dict({'url': url}, **{name.rsplit(string.digits)[0]: cve for name in dalao}) 64 | else: 65 | Color.print_failed(url) 66 | 67 | def download(self): 68 | base_url = 'https://www.intel.com' 69 | advisories_url = f'{base_url}/content/www/us/en/security-center/default.html' 70 | r = requests.get(advisories_url) 71 | root = etree.HTML(r.content) 72 | table = root.xpath('//*[@id="editorialTableBlade-1"]/div/div[2]/div/table/tbody/tr') 73 | urls = [] 74 | for i in table: 75 | href = i.xpath('td/a/@href')[0] 76 | urls.append(f'{base_url}{href}') 77 | 78 | with ThreadPoolExecutor(1) as executor: 79 | tasks = [executor.submit(Intel.downloadThread, url) for url in urls] 80 | result = [task.result() for task in as_completed(tasks) if task.result()] 81 | 82 | with open(self.raw_path, 'w+') as f: 83 | f.write(json.dumps(result, indent=4)) 84 | Color.print_success(f'[+] download: {self.raw_path}') 85 | return result 86 | 87 | def get_dalao(self): 88 | dalao = defaultdict(lambda: defaultdict(list)) 89 | for item in self.data: 90 | for name, value in item.items(): 91 | if name != 'url': 92 | dalao[name]['url'] = self.namelist.get(name) 93 | dalao[name]['cve'].extend(value) 94 | 95 | with open(self.dalao_path, 'w+') as f: 96 | f.write(json.dumps(dalao, indent=4)) 97 | Color.print_success(f'[+] dalao: {self.dalao_path}') 98 | return dalao 99 | 100 | def update_readme(self, dalao=None): 101 | if not dalao: 102 | with open(self.dalao_path, 'r') as f: 103 | dalao = json.load(f) 104 | 105 | content = '# Intel Top 100\n\n' 106 | content += '数据来源:https://www.intel.com/content/www/us/en/security-center/default.html\n\n' 107 | 108 | # 总榜 109 | dalao_top = Readme.get_dalao_top(dalao, 100) 110 | content += '## Top 100\n\n' 111 | content += '| 排名 | 姓名 | CVE数量 |\n| --- | --- | --- |\n' 112 | content += Readme.make_table(dalao_top) 113 | 114 | # 历年 115 | first_year = Readme.get_first_year(dalao) 116 | for year in range(int(datetime.now().strftime('%Y')), first_year-1, -1): 117 | content += f'\n## {year} Top 10\n\n' 118 | content += '| 排名 | 姓名 | CVE数量 |\n| --- | --- | --- |\n' 119 | year_dalao = Readme.get_year_dalao(dalao, year) 120 | dalao_top = Readme.get_dalao_top(year_dalao, 10) 121 | content += Readme.make_table(dalao_top) 122 | 123 | readme = self.local_path.joinpath('README.md') 124 | with open(readme, 'w+') as f: 125 | f.write(content) 126 | Color.print_success(f'[+] update readme: {readme}') 127 | -------------------------------------------------------------------------------- /data/intel/README.md: -------------------------------------------------------------------------------- 1 | # Intel Top 100 2 | 3 | 数据来源:https://www.intel.com/content/www/us/en/security-center/default.html 4 | 5 | ## Top 100 6 | 7 | | 排名 | 姓名 | CVE数量 | 8 | | --- | --- | --- | 9 | | 1 | Yaakov Cohen | 121 | 10 | | 2 | Arie Haenel | 107 | 11 | | 3 | Marius Gabriel Mihai | 93 | 12 | | 4 | Moshe Wagner | 79 | 13 | | 5 | [Eran Shimony](https://twitter.com/EranShimony) | 78 | 14 | | 6 | Ori Nimron | 71 | 15 | | 7 | Hareesh Khattri | 70 | 16 | | 8 | Yossef Kuszer | 67 | 17 | | 9 | Niv Israely | 53 | 18 | | 10 | Yanai Moyal | 52 | 19 | | 11 | Dmitry Sklyarov | 46 | 20 | | 12 | Mark Ermolov | 45 | 21 | | 13 | Julien Lenoir | 44 | 22 | | 14 | Brent Holtsclaw | 42 | 23 | | 15 | Kekai Hu | 41 | 24 | | 16 | [Zhiniang Peng](https://twitter.com/edwardzpeng) | 40 | 25 | | 17 | Ryan Hall | 40 | 26 | | 18 | Dmitry Frolov | 40 | 27 | | 19 | Rodrigo Branco | 38 | 28 | | 20 | Alexander Ermolov | 35 | 29 | | 21 | Artem Shishkin | 35 | 30 | | 22 | Edgar Barbosa | 35 | 31 | | 23 | Rodrigo Axel Monroy | 35 | 32 | | 24 | Gabriel Barbosa | 32 | 33 | | 25 | Gustavo Scotti | 32 | 34 | | 26 | Oussama Sahnoun | 30 | 35 | | 27 | SaifAllah benMassaoud | 29 | 36 | | 28 | Daniel Moghimi | 29 | 37 | | 29 | Trammell Hudson | 28 | 38 | | 30 | Rotem Sela | 28 | 39 | | 31 | Brian Mastenbrook | 28 | 40 | | 32 | Aviya Erenfeld | 28 | 41 | | 33 | Binyamin Belaciano | 28 | 42 | | 34 | Dmitry Piotrovsky | 28 | 43 | | 35 | Ofek Mostovoy | 28 | 44 | | 36 | Yakov Cohen | 28 | 45 | | 37 | Jesse Michael | 28 | 46 | | 38 | Shlomi Oberman | 27 | 47 | | 39 | Chaya Vayzer | 27 | 48 | | 40 | Nir Ben Yosef | 27 | 49 | | 41 | Piotr Skierkowski | 27 | 50 | | 42 | Berk Sunar | 27 | 51 | | 43 | Thomas Eisenbarth | 27 | 52 | | 44 | Tikvah Katz | 27 | 53 | | 45 | Michael N. Henry | 26 | 54 | | 46 | Nadia Heninger | 25 | 55 | | 47 | Leon Nilges | 25 | 56 | | 48 | Jakub Rozanski | 25 | 57 | | 49 | Moshe Nagady | 25 | 58 | | 50 | Oren Weil | 25 | 59 | | 51 | Dmytro Oleksiuk | 24 | 60 | | 52 | @j00sean | 23 | 61 | | 53 | Jamie Brown | 23 | 62 | | 54 | Dean McKinnel | 23 | 63 | | 55 | John Tear | 23 | 64 | | 56 | Fangming Gu | 23 | 65 | | 57 | Nassim Asrir | 23 | 66 | | 58 | Linshuang Li | 23 | 67 | | 59 | Nicola Stauffer | 23 | 68 | | 60 | Sunny Rajasekaran | 23 | 69 | | 61 | Steffen Schulz | 23 | 70 | | 62 | Jared Candeleria | 23 | 71 | | 63 | Will Burton | 23 | 72 | | 64 | Jorge E Gonzalez Diaz | 23 | 73 | | 65 | Nicholas Armour | 23 | 74 | | 66 | Herbert Bos | 19 | 75 | | 67 | Cristiano Giuffrida | 19 | 76 | | 68 | Jimmy Bayne | 19 | 77 | | 69 | Michael Henry | 17 | 78 | | 70 | Hugo Magalhaes | 16 | 79 | | 71 | Anonymous | 16 | 80 | | 72 | DrX | 16 | 81 | | 73 | Wei Lei | 16 | 82 | | 74 | Jo Van Bulck | 15 | 83 | | 75 | KU Leuven | 15 | 84 | | 76 | Moritz Lipp | 15 | 85 | | 77 | Michael Schwarz | 15 | 86 | | 78 | Lasse Borup | 15 | 87 | | 79 | Alex Gutkin | 15 | 88 | | 80 | Yair Netzer | 15 | 89 | | 81 | [Stefan Kanthak](http://eskamation.de) | 14 | 90 | | 82 | Pietro Frigo | 13 | 91 | | 83 | Daniel Gruss | 13 | 92 | | 84 | Kaveh Razavi | 13 | 93 | | 85 | Alyssa Milburn | 12 | 94 | | 86 | Hannes Trunde | 12 | 95 | | 87 | David-Hai Gootvilig | 12 | 96 | | 88 | Dor Levy | 12 | 97 | | 89 | David Oswald | 11 | 98 | | 90 | Stephan van Schaik | 11 | 99 | | 91 | Sebastian Österlund | 11 | 100 | | 92 | Michael Bourque | 11 | 101 | | 93 | Narasimha Kumar V Mangipudi | 11 | 102 | | 94 | Piotr Bania | 11 | 103 | | 95 | Domien Schepers | 10 | 104 | | 96 | Ruslan Zakirov | 10 | 105 | | 97 | Michael N Henry | 10 | 106 | | 98 | Daniel Medina Velazquez | 10 | 107 | | 99 | Parbati K Manna | 10 | 108 | | 100 | Marek Augoff-Birman | 9 | 109 | 110 | ## 2022 Top 10 111 | 112 | | 排名 | 姓名 | CVE数量 | 113 | | --- | --- | --- | 114 | | 1 | Marius Gabriel Mihai | 5 | 115 | | 2 | Star Labs | 4 | 116 | | 3 | Pietro Frigo | 2 | 117 | | 4 | Enrico Barberis | 2 | 118 | | 5 | Marius Muench | 2 | 119 | | 6 | Herbert Bos | 2 | 120 | | 7 | Cristiano Giuffrida | 2 | 121 | | 8 | Sheikh Rishad | 2 | 122 | 123 | ## 2021 Top 10 124 | 125 | | 排名 | 姓名 | CVE数量 | 126 | | --- | --- | --- | 127 | | 1 | Hareesh Khattri | 34 | 128 | | 2 | Yaakov Cohen | 33 | 129 | | 3 | Hugo Magalhaes | 16 | 130 | | 4 | Marius Gabriel Mihai | 14 | 131 | | 5 | SaifAllah benMassaoud | 12 | 132 | | 6 | Domien Schepers | 10 | 133 | | 7 | Julien Lenoir | 10 | 134 | | 8 | Asaf Modelevsky | 6 | 135 | | 9 | "houjingyi" | 6 | 136 | | 10 | [Eran Shimony](https://twitter.com/EranShimony) | 5 | 137 | 138 | ## 2020 Top 10 139 | 140 | | 排名 | 姓名 | CVE数量 | 141 | | --- | --- | --- | 142 | | 1 | [Eran Shimony](https://twitter.com/EranShimony) | 70 | 143 | | 2 | Ori Nimron | 70 | 144 | | 3 | Arie Haenel | 55 | 145 | | 4 | Marius Gabriel Mihai | 49 | 146 | | 5 | [Zhiniang Peng](https://twitter.com/edwardzpeng) | 40 | 147 | | 6 | Brent Holtsclaw | 38 | 148 | | 7 | Yaakov Cohen | 36 | 149 | | 8 | Julien Lenoir | 34 | 150 | | 9 | Dmitry Frolov | 32 | 151 | | 10 | Oussama Sahnoun | 30 | 152 | 153 | ## 2019 Top 10 154 | 155 | | 排名 | 姓名 | CVE数量 | 156 | | --- | --- | --- | 157 | | 1 | Yaakov Cohen | 40 | 158 | | 2 | Arie Haenel | 40 | 159 | | 3 | Moshe Wagner | 40 | 160 | | 4 | Jesse Michael | 28 | 161 | | 5 | Daniel Moghimi | 26 | 162 | | 6 | Berk Sunar | 26 | 163 | | 7 | Thomas Eisenbarth | 26 | 164 | | 8 | Hareesh Khattri | 25 | 165 | | 9 | Niv Israely | 25 | 166 | | 10 | Yossef Kuszer | 25 | 167 | 168 | ## 2018 Top 10 169 | 170 | | 排名 | 姓名 | CVE数量 | 171 | | --- | --- | --- | 172 | | 1 | Rodrigo Branco | 23 | 173 | | 2 | Kekai Hu | 23 | 174 | | 3 | @j00sean | 20 | 175 | | 4 | Artem Shishkin | 20 | 176 | | 5 | Edgar Barbosa | 20 | 177 | | 6 | Rodrigo Axel Monroy | 20 | 178 | | 7 | Gabriel Barbosa | 20 | 179 | | 8 | Gustavo Scotti | 20 | 180 | | 9 | Yaakov Cohen | 12 | 181 | | 10 | Arie Haenel | 12 | 182 | 183 | ## 2017 Top 10 184 | 185 | | 排名 | 姓名 | CVE数量 | 186 | | --- | --- | --- | 187 | | 1 | [Mathy Vanhoef](https://www.mathyvanhoef.com) | 1 | 188 | | 2 | Igor Metrik | 1 | 189 | | 3 | Dmytro Oleksiuk | 1 | 190 | -------------------------------------------------------------------------------- /data/nvidia/README.md: -------------------------------------------------------------------------------- 1 | # Nvidia Top 100 2 | 3 | 数据来源:https://www.nvidia.com/en-us/security/acknowledgements 4 | 5 | ## Top 100 6 | 7 | | 排名 | 姓名 | CVE数量 | 8 | | --- | --- | --- | 9 | | 1 | Frédéric Perriot | 26 | 10 | | 2 | Oliver Chang | 16 | 11 | | 3 | Joshua J. Drake | 8 | 12 | | 4 | Nathan Crandall | 6 | 13 | | 5 | Piotr Bania | 5 | 14 | | 6 | Jianqiang Zhao | 5 | 15 | | 7 | PJF | 5 | 16 | | 8 | Fabian Toepfer | 3 | 17 | | 9 | Wenxiang Qian | 3 | 18 | | 10 | Hashim Jawad | 3 | 19 | | 11 | Billy Laws | 2 | 20 | | 12 | Michael de Gans | 2 | 21 | | 13 | Sergey Gordeychik | 2 | 22 | | 14 | Roman Palkin | 2 | 23 | | 15 | Maria Samoylova | 2 | 24 | | 16 | Denis Kolegov | 2 | 25 | | 17 | Peleg Hadar | 2 | 26 | | 18 | Alin Ghica | 2 | 27 | | 19 | Joseph Bialek | 2 | 28 | | 20 | Adam Jackson | 2 | 29 | | 21 | Alan Coopersmith | 2 | 30 | | 22 | Leonardo Galli | 1 | 31 | | 23 | Jeremy Brown | 1 | 32 | | 24 | Oliver Sellwood | 1 | 33 | | 25 | Bennie Affleck | 1 | 34 | | 26 | Magnus Bergman | 1 | 35 | | 27 | David Köhler | 1 | 36 | | 28 | Alexander Tereshkin | 1 | 37 | | 29 | Alexander Matrosov | 1 | 38 | | 30 | Adam ‘ | 1 | 39 | | 31 | Matt BattenPaolo Stagno | 1 | 40 | | 32 | Aleksandar Milenkoski | 1 | 41 | | 33 | Enno Rey Netzwerke | 1 | 42 | | 34 | Rotem Sela | 1 | 43 | | 35 | Brian Mastenbrook | 1 | 44 | | 36 | Xinyuan Lyu | 1 | 45 | | 37 | Hou JingYi (@hjy79425575) | 1 | 46 | | 38 | Weidang Peng | 1 | 47 | | 39 | Boris Ryutin | 1 | 48 | | 40 | Xavier DANEST - Decathlon | 1 | 49 | | 41 | Jo Hemmerlein | 1 | 50 | | 42 | Andy Gill | 1 | 51 | | 43 | Rhet Evans | 1 | 52 | | 44 | Martino Trevisan | 1 | 53 | | 45 | Ammarit Thongthua | 1 | 54 | | 46 | Sittikorn Sangrattanapitak | 1 | 55 | | 47 | Thomas E. Carroll | 1 | 56 | | 48 | [Zhiniang Peng](https://twitter.com/edwardzpeng) | 1 | 57 | | 49 | [Xuefeng Li](https://twitter.com/lxf02942370) | 1 | 58 | | 50 | Ryan Grachek | 1 | 59 | | 51 | Siyuan Yi | 1 | 60 | | 52 | Lucas Pinheiro | 1 | 61 | | 53 | Jesse Michael | 1 | 62 | | 54 | Mickey Shkatov | 1 | 63 | | 55 | Yousra Aafer | 1 | 64 | | 56 | Leron Gray | 1 | 65 | | 57 | Balázs Triszka | 1 | 66 | | 58 | David Yesland | 1 | 67 | | 59 | Arvind Shah | 1 | 68 | | 60 | Łukasz | 1 | 69 | | 61 | Yasin Soliman | 1 | 70 | | 62 | Marius Gabriel Mihai | 1 | 71 | | 63 | [Stefan Kanthak](http://eskamation.de) | 1 | 72 | | 64 | Jesse Raffa | 1 | 73 | | 65 | Christ | 1 | 74 | | 66 | Pankaj Kumar | 1 | 75 | | 67 | JangJesse Michael | 1 | 76 | | 68 | Akshay Jain | 1 | 77 | | 69 | Pierre-Alexandre Braeken | 1 | 78 | | 70 | Hoda Naghibijouybari | 1 | 79 | | 71 | Ajaya Neupane | 1 | 80 | | 72 | Zhiyun Qian | 1 | 81 | | 73 | Nael Abu-Ghazaleh | 1 | 82 | | 74 | Mark Barnes | 1 | 83 | | 75 | Kate Temkin | 1 | 84 | | 76 | Gehan Kaushal | 1 | 85 | | 77 | Hassy Vinod | 1 | 86 | | 78 | Andriy Noble | 1 | 87 | | 79 | Tim Harrison | 1 | 88 | | 80 | [Enrique Nissim](https://twitter.com/kiquenissim) | 1 | 89 | | 81 | Andrei Lascu | 1 | 90 | | 82 | Alastair Donaldson | 1 | 91 | | 83 | Ryan Whitworth | 1 | 92 | | 84 | Kushal Arvind Shah | 1 | 93 | | 85 | Oden Schmit | 1 | 94 | | 86 | Peter Pi | 1 | 95 | | 87 | Scott Bauer | 1 | 96 | | 88 | Chiachih Wu | 1 | 97 | | 89 | Mingjian Zhou | 1 | 98 | | 90 | Xuxian Jiang | 1 | 99 | | 91 | Sagi Kedmi | 1 | 100 | | 92 | Daniel Cornel | 1 | 101 | | 93 | Yuan-Tsung Lo | 1 | 102 | | 94 | Lubo Zhang | 1 | 103 | | 95 | Axel Monroy | 1 | 104 | | 96 | Nikita Tarakanov | 1 | 105 | | 97 | Wesley Daniels | 1 | 106 | | 98 | Dario Weisser | 1 | 107 | | 99 | James Forshaw | 1 | 108 | | 100 | Lee Campbell | 1 | 109 | 110 | ## 2022 Top 10 111 | 112 | | 排名 | 姓名 | CVE数量 | 113 | | --- | --- | --- | 114 | | 1 | Leonardo Galli | 1 | 115 | | 2 | Jeremy Brown | 1 | 116 | | 3 | Oliver Sellwood | 1 | 117 | | 4 | Bennie Affleck | 1 | 118 | | 5 | Magnus Bergman | 1 | 119 | 120 | ## 2021 Top 10 121 | 122 | | 排名 | 姓名 | CVE数量 | 123 | | --- | --- | --- | 124 | | 1 | Frédéric Perriot | 26 | 125 | | 2 | Fabian Toepfer | 3 | 126 | | 3 | Wenxiang Qian | 3 | 127 | | 4 | Billy Laws | 2 | 128 | | 5 | David Köhler | 1 | 129 | | 6 | Alexander Tereshkin | 1 | 130 | | 7 | Alexander Matrosov | 1 | 131 | | 8 | Adam ‘ | 1 | 132 | | 9 | Matt BattenPaolo Stagno | 1 | 133 | | 10 | Aleksandar Milenkoski | 1 | 134 | 135 | ## 2020 Top 10 136 | 137 | | 排名 | 姓名 | CVE数量 | 138 | | --- | --- | --- | 139 | | 1 | Sergey Gordeychik | 2 | 140 | | 2 | Roman Palkin | 2 | 141 | | 3 | Maria Samoylova | 2 | 142 | | 4 | Denis Kolegov | 2 | 143 | | 5 | Hashim Jawad | 2 | 144 | | 6 | Michael de Gans | 1 | 145 | | 7 | Hou JingYi (@hjy79425575) | 1 | 146 | | 8 | Weidang Peng | 1 | 147 | | 9 | Boris Ryutin | 1 | 148 | | 10 | Xavier DANEST - Decathlon | 1 | 149 | 150 | ## 2019 Top 10 151 | 152 | | 排名 | 姓名 | CVE数量 | 153 | | --- | --- | --- | 154 | | 1 | Piotr Bania | 2 | 155 | | 2 | Peleg Hadar | 2 | 156 | | 3 | Hashim Jawad | 1 | 157 | | 4 | Ryan Grachek | 1 | 158 | | 5 | Siyuan Yi | 1 | 159 | | 6 | Lucas Pinheiro | 1 | 160 | | 7 | Jesse Michael | 1 | 161 | | 8 | Yousra Aafer | 1 | 162 | | 9 | Leron Gray | 1 | 163 | | 10 | Balázs Triszka | 1 | 164 | 165 | ## 2018 Top 10 166 | 167 | | 排名 | 姓名 | CVE数量 | 168 | | --- | --- | --- | 169 | | 1 | Piotr Bania | 1 | 170 | | 2 | Akshay Jain | 1 | 171 | | 3 | Pierre-Alexandre Braeken | 1 | 172 | | 4 | Hoda Naghibijouybari | 1 | 173 | | 5 | Ajaya Neupane | 1 | 174 | | 6 | Zhiyun Qian | 1 | 175 | | 7 | Nael Abu-Ghazaleh | 1 | 176 | | 8 | Mark Barnes | 1 | 177 | | 9 | Kate Temkin | 1 | 178 | 179 | ## 2017 Top 10 180 | 181 | | 排名 | 姓名 | CVE数量 | 182 | | --- | --- | --- | 183 | | 1 | Oliver Chang | 2 | 184 | | 2 | Nathan Crandall | 1 | 185 | | 3 | [Enrique Nissim](https://twitter.com/kiquenissim) | 1 | 186 | | 4 | Andrei Lascu | 1 | 187 | | 5 | Alastair Donaldson | 1 | 188 | | 6 | Ryan Whitworth | 1 | 189 | 190 | ## 2016 Top 10 191 | 192 | | 排名 | 姓名 | CVE数量 | 193 | | --- | --- | --- | 194 | | 1 | Oliver Chang | 14 | 195 | | 2 | Nathan Crandall | 5 | 196 | | 3 | Jianqiang Zhao | 5 | 197 | | 4 | PJF | 5 | 198 | | 5 | Alin Ghica | 2 | 199 | | 6 | Joseph Bialek | 2 | 200 | | 7 | Piotr Bania | 1 | 201 | | 8 | Oden Schmit | 1 | 202 | | 9 | Peter Pi | 1 | 203 | | 10 | Scott Bauer | 1 | 204 | 205 | ## 2015 Top 10 206 | 207 | | 排名 | 姓名 | CVE数量 | 208 | | --- | --- | --- | 209 | | 1 | Joshua J. Drake | 8 | 210 | | 2 | Axel Monroy | 1 | 211 | | 3 | Nikita Tarakanov | 1 | 212 | | 4 | Wesley Daniels | 1 | 213 | | 5 | Dario Weisser | 1 | 214 | | 6 | James Forshaw | 1 | 215 | 216 | ## 2014 Top 10 217 | 218 | | 排名 | 姓名 | CVE数量 | 219 | | --- | --- | --- | 220 | | 1 | Adam Jackson | 2 | 221 | | 2 | Alan Coopersmith | 2 | 222 | | 3 | Lee Campbell | 1 | 223 | | 4 | Robert Morell | 1 | 224 | 225 | ## 2013 Top 10 226 | 227 | | 排名 | 姓名 | CVE数量 | 228 | | --- | --- | --- | 229 | | 1 | Marcin Kościelnicki | 1 | 230 | -------------------------------------------------------------------------------- /data/microsoft/README.md: -------------------------------------------------------------------------------- 1 | # Microsoft Top 100 2 | 3 | 数据来源:https://msrc.microsoft.com/update-guide/acknowledgement 4 | 5 | ## Top 100 6 | 7 | | 排名 | 姓名 | CVE数量 | 8 | | --- | --- | --- | 9 | | 1 | [Yuki Chen](https://twitter.com/guhe120) | 306 | 10 | | 2 | [Zhiniang Peng](https://twitter.com/edwardzpeng) | 216 | 11 | | 3 | Mateusz Jurczyk | 172 | 12 | | 4 | Anonymous working | 120 | 13 | | 5 | James Forshaw | 108 | 14 | | 6 | [Xuefeng Li](https://twitter.com/lxf02942370) | 96 | 15 | | 7 | [Qixun Zhao](https://twitter.com/S0rryMybad) | 77 | 16 | | 8 | Lokihardt | 76 | 17 | | 9 | kdot working | 74 | 18 | | 10 | [Ashar Javed](https://twitter.com/soaj1664ashar) | 68 | 19 | | 11 | Fangming Gu | 61 | 20 | | 12 | Dhanesh Kizhakkinan | 59 | 21 | | 13 | [Steven Seeley](https://srcincite.io) | 56 | 22 | | 14 | [Huynh Phuoc Hung](https://twitter.com/hph0var) | 56 | 23 | | 15 | Hossein Lotfi | 55 | 24 | | 16 | [k0shl](https://twitter.com/KeyZ3r0) | 46 | 25 | | 17 | [Gal De Leon](https://twitter.com/galdeleon) | 46 | 26 | | 18 | [Nicolas Joly](https://twitter.com/n_joly) | 45 | 27 | | 19 | [Abdelhamid Naceri](https://halove23.blogspot.com) | 44 | 28 | | 20 | [pgboy](http://weibo.com/pgboy1988) | 40 | 29 | | 21 | Shefang Zhong | 40 | 30 | | 22 | Ivan Fratric | 39 | 31 | | 23 | Jarvis_1oop | 37 | 32 | | 24 | [Ke Liu](https://twitter.com/klotxl404) | 36 | 33 | | 25 | Microsoft ChakraCore Team | 36 | 34 | | 26 | [JeongOh Kyea](https://twitter.com/kkokkokye) | 34 | 35 | | 27 | [zhong_sf](http://weibo.com/2641521260) | 33 | 36 | | 28 | [Jinquan](https://twitter.com/jq0904) | 31 | 37 | | 29 | Microsoft Platform Security Assurance & Vulnerability Research | 31 | 38 | | 30 | Jiadong Lu | 31 | 39 | | 31 | Wayne Low | 30 | 40 | | 32 | [Peter Hlavaty](https://twitter.com/zer0mem) | 30 | 41 | | 33 | Jaanus Kääp | 29 | 42 | | 34 | Zhangjie | 28 | 43 | | 35 | rgod of 9sg Security Team - rgod | 28 | 44 | | 36 | Haoran Qin | 27 | 45 | | 37 | Anonymous researcher | 26 | 46 | | 38 | [David Erceg](https://www.daviderceg.com) | 25 | 47 | | 39 | Anonymous | 25 | 48 | | 40 | Keqi Hu | 25 | 49 | | 41 | Liu Long | 24 | 50 | | 42 | [Hardik Shah](https://twitter.com/hardik05) | 23 | 51 | | 43 | MoonLiang | 23 | 52 | | 44 | [Tao Yan](https://twitter.com/ga1ois) | 22 | 53 | | 45 | Guopengfei | 22 | 54 | | 46 | Microsoft Offensive Research & Security Engineering (MORSE) | 21 | 55 | | 47 | Lucas Leong | 21 | 56 | | 48 | anonymous | 20 | 57 | | 49 | fanxiaocao and pjf | 20 | 58 | | 50 | Claudio Bozzato | 19 | 59 | | 51 | Jordan Rabet | 19 | 60 | | 52 | Axel Souchet | 19 | 61 | | 53 | Simon Zuckerbraun | 18 | 62 | | 54 | Haifei Li | 18 | 63 | | 55 | Netanel Ben-Simon | 18 | 64 | | 56 | Oleksandr Mirosh | 18 | 65 | | 57 | [Polar Bear](https://www.youtube.com/watch?v=0AhPC_dHkHo) | 17 | 66 | | 58 | Alex Ionescu | 17 | 67 | | 59 | Jonas Lykkegård | 17 | 68 | | 60 | Marcin Wiazowski | 16 | 69 | | 61 | [bee13oy](https://twitter.com/bee13oy) | 16 | 70 | | 62 | Wei | 16 | 71 | | 63 | HAO LI | 16 | 72 | | 64 | Quang Linh | 16 | 73 | | 65 | BugCloud | 16 | 74 | | 66 | Jun Kokatsu | 16 | 75 | | 67 | Anonymous Finder | 15 | 76 | | 68 | [ziming zhang](https://twitter.com/ezrak1e) | 15 | 77 | | 69 | [David Dworken](https://daviddworken.com) | 15 | 78 | | 70 | [Markus Wulftange](https://twitter.com/mwulftange) | 15 | 79 | | 71 | liuxiaoliang and pjf | 15 | 80 | | 72 | ZiMi and JunGu | 15 | 81 | | 73 | [Bruno Keith](https://twitter.com/bkth_) | 15 | 82 | | 74 | [Matt Graeber](https://twitter.com/mattifestation) | 15 | 83 | | 75 | [Soroush Dalili](https://twitter.com/irsdl) | 15 | 84 | | 76 | [Zhang WangJunJie](https://twitter.com/syjzwjj) | 14 | 85 | | 77 | Yoav Alon | 14 | 86 | | 78 | [Masato Kinugawa](https://twitter.com/kinugawamasato) | 14 | 87 | | 79 | Ying Xinlei | 13 | 88 | | 80 | [Kai Song](http://exp-sky.org) | 13 | 89 | | 81 | Pham Van Khanh | 12 | 90 | | 82 | [Cameron Vincent](https://twitter.com/secretlyhidden1) | 12 | 91 | | 83 | Lilith | 12 | 92 | | 84 | Zhibin Zhang | 12 | 93 | | 85 | WenQunWang | 12 | 94 | | 86 | JunGu and ZiMi | 12 | 95 | | 87 | Gil Dabah | 12 | 96 | | 88 | Scott Bell | 12 | 97 | | 89 | Natalie Silvanovich | 12 | 98 | | 90 | HongZhenhao | 11 | 99 | | 91 | Wenguang Jiao | 11 | 100 | | 92 | Dave McDaniel | 11 | 101 | | 93 | [Wenxu Wu](https://twitter.com/ma7h1as) | 11 | 102 | | 94 | yangkang3 | 11 | 103 | | 95 | Edward Torkington | 11 | 104 | | 96 | Marcin Towalski | 11 | 105 | | 97 | Behzad Najjarpour Jabbari | 11 | 106 | | 98 | Honggang Ren | 11 | 107 | | 99 | Matt Nelson | 11 | 108 | | 100 | Hui Gao | 11 | 109 | 110 | ## 2022 Top 10 111 | 112 | | 排名 | 姓名 | CVE数量 | 113 | | --- | --- | --- | 114 | | 1 | [Yuki Chen](https://twitter.com/guhe120) | 25 | 115 | | 2 | Microsoft Offensive Research & Security Engineering (MORSE) | 20 | 116 | | 3 | [David Erceg](https://www.daviderceg.com) | 17 | 117 | | 4 | [k0shl](https://twitter.com/KeyZ3r0) | 12 | 118 | | 5 | [Zhiniang Peng](https://twitter.com/edwardzpeng) | 12 | 119 | | 6 | Dhanesh Kizhakkinan | 10 | 120 | | 7 | Anonymous | 9 | 121 | | 8 | Tobias Groß | 8 | 122 | | 9 | [Polar Bear](https://www.youtube.com/watch?v=0AhPC_dHkHo) | 7 | 123 | | 10 | [Zhang WangJunJie](https://twitter.com/syjzwjj) | 7 | 124 | 125 | ## 2021 Top 10 126 | 127 | | 排名 | 姓名 | CVE数量 | 128 | | --- | --- | --- | 129 | | 1 | [Yuki Chen](https://twitter.com/guhe120) | 66 | 130 | | 2 | [Abdelhamid Naceri](https://halove23.blogspot.com) | 30 | 131 | | 3 | [Zhiniang Peng](https://twitter.com/edwardzpeng) | 21 | 132 | | 4 | [Xuefeng Li](https://twitter.com/lxf02942370) | 19 | 133 | | 5 | James Forshaw | 19 | 134 | | 6 | Dhanesh Kizhakkinan | 18 | 135 | | 7 | Anonymous working | 18 | 136 | | 8 | kdot working | 15 | 137 | | 9 | [k0shl](https://twitter.com/KeyZ3r0) | 15 | 138 | | 10 | [ziming zhang](https://twitter.com/ezrak1e) | 13 | 139 | 140 | ## 2020 Top 10 141 | 142 | | 排名 | 姓名 | CVE数量 | 143 | | --- | --- | --- | 144 | | 1 | [Zhiniang Peng](https://twitter.com/edwardzpeng) | 176 | 145 | | 2 | [Yuki Chen](https://twitter.com/guhe120) | 105 | 146 | | 3 | [Xuefeng Li](https://twitter.com/lxf02942370) | 73 | 147 | | 4 | [Huynh Phuoc Hung](https://twitter.com/hph0var) | 47 | 148 | | 5 | Fangming Gu | 44 | 149 | | 6 | Shefang Zhong | 40 | 150 | | 7 | Jiadong Lu | 31 | 151 | | 8 | Jarvis_1oop | 29 | 152 | | 9 | Hossein Lotfi | 29 | 153 | | 10 | Haoran Qin | 27 | 154 | 155 | ## 2019 Top 10 156 | 157 | | 排名 | 姓名 | CVE数量 | 158 | | --- | --- | --- | 159 | | 1 | [Yuki Chen](https://twitter.com/guhe120) | 64 | 160 | | 2 | [Qixun Zhao](https://twitter.com/S0rryMybad) | 47 | 161 | | 3 | kdot working | 34 | 162 | | 4 | [Gal De Leon](https://twitter.com/galdeleon) | 33 | 163 | | 5 | rgod of 9sg Security Team - rgod | 28 | 164 | | 6 | Mateusz Jurczyk | 26 | 165 | | 7 | [zhong_sf](http://weibo.com/2641521260) | 26 | 166 | | 8 | James Forshaw | 22 | 167 | | 9 | Anonymous working | 20 | 168 | | 10 | Microsoft Platform Security Assurance & Vulnerability Research | 18 | 169 | 170 | ## 2018 Top 10 171 | 172 | | 排名 | 姓名 | CVE数量 | 173 | | --- | --- | --- | 174 | | 1 | Lokihardt | 38 | 175 | | 2 | Anonymous working | 37 | 176 | | 3 | [Yuki Chen](https://twitter.com/guhe120) | 36 | 177 | | 4 | [Ashar Javed](https://twitter.com/soaj1664ashar) | 34 | 178 | | 5 | Mateusz Jurczyk | 30 | 179 | | 6 | James Forshaw | 23 | 180 | | 7 | [Qixun Zhao](https://twitter.com/S0rryMybad) | 16 | 181 | | 8 | [Nicolas Joly](https://twitter.com/n_joly) | 14 | 182 | | 9 | Ivan Fratric | 10 | 183 | | 10 | Jaanus Kääp | 9 | 184 | 185 | ## 2017 Top 10 186 | 187 | | 排名 | 姓名 | CVE数量 | 188 | | --- | --- | --- | 189 | | 1 | Mateusz Jurczyk | 97 | 190 | | 2 | Lokihardt | 35 | 191 | | 3 | Microsoft ChakraCore Team | 30 | 192 | | 4 | Ivan Fratric | 19 | 193 | | 5 | [pgboy](http://weibo.com/pgboy1988) | 17 | 194 | | 6 | Anonymous working | 16 | 195 | | 7 | Axel Souchet | 16 | 196 | | 8 | [Nicolas Joly](https://twitter.com/n_joly) | 14 | 197 | | 9 | fanxiaocao and pjf | 14 | 198 | | 10 | Dhanesh Kizhakkinan | 12 | 199 | 200 | ## 2016 Top 10 201 | 202 | | 排名 | 姓名 | CVE数量 | 203 | | --- | --- | --- | 204 | | 1 | [Steven Seeley](https://srcincite.io) | 20 | 205 | | 2 | James Forshaw | 19 | 206 | | 3 | Mateusz Jurczyk | 16 | 207 | | 4 | [Peter Hlavaty](https://twitter.com/zer0mem) | 13 | 208 | | 5 | Natalie Silvanovich | 10 | 209 | | 6 | Anonymous working | 9 | 210 | | 7 | Liu Long | 7 | 211 | | 8 | [Masato Kinugawa](https://twitter.com/kinugawamasato) | 7 | 212 | | 9 | Zheng Huang | 7 | 213 | | 10 | [Kai Song](http://exp-sky.org) | 6 | 214 | 215 | ## 2015 Top 10 216 | 217 | | 排名 | 姓名 | CVE数量 | 218 | | --- | --- | --- | 219 | 220 | ## 2014 Top 10 221 | 222 | | 排名 | 姓名 | CVE数量 | 223 | | --- | --- | --- | 224 | 225 | ## 2013 Top 10 226 | 227 | | 排名 | 姓名 | CVE数量 | 228 | | --- | --- | --- | 229 | | 1 | Michal Zalewski | 1 | 230 | -------------------------------------------------------------------------------- /data/nvidia/data/raw_data.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "year": "2022", 4 | "Leonardo Galli": [ 5 | "CVE-2022-21821" 6 | ], 7 | "Jeremy Brown": [ 8 | "CVE-2022-21820" 9 | ], 10 | "Oliver Sellwood": [ 11 | "CVE-2022-21822" 12 | ], 13 | "Bennie Affleck": [ 14 | "CVE-2022-21819" 15 | ], 16 | "Magnus Bergman": [ 17 | "CVE-2022-21818" 18 | ], 19 | "Billy Laws": [ 20 | "CVE-2021-34406" 21 | ] 22 | }, 23 | { 24 | "year": "2021", 25 | "David Köhler": [ 26 | "CVE-2021-23175" 27 | ], 28 | "Alexander Tereshkin": [ 29 | "CVE-2021-0144" 30 | ], 31 | "Alexander Matrosov": [ 32 | "CVE-2021-0144" 33 | ], 34 | "Adam ‘": [ 35 | "CVE-2021-0144" 36 | ], 37 | "Fabian Toepfer": [ 38 | "CVE-2021-1090", 39 | "CVE-2021-1095", 40 | "CVE-2021-1096" 41 | ], 42 | "Wenxiang Qian": [ 43 | "CVE-2021-1082", 44 | "CVE-2021-1084", 45 | "CVE-2021-1087" 46 | ], 47 | "Frédéric Perriot": [ 48 | "CVE-2021-34372", 49 | "CVE-2021-34373", 50 | "CVE-2021-34374", 51 | "CVE-2021-34375", 52 | "CVE-2021-34376", 53 | "CVE-2021-34377", 54 | "CVE-2021-34378", 55 | "CVE-2021-34379", 56 | "CVE-2021-34380", 57 | "CVE-2021-34381", 58 | "CVE-2021-34382", 59 | "CVE-2021-34383", 60 | "CVE-2021-34384", 61 | "CVE-2021-34385", 62 | "CVE-2021-34386", 63 | "CVE-2021-34387", 64 | "CVE-2021-34388", 65 | "CVE-2021-34389", 66 | "CVE-2021-34390", 67 | "CVE-2021-34391", 68 | "CVE-2021-34392", 69 | "CVE-2021-34393", 70 | "CVE-2021-34394", 71 | "CVE-2021-34395", 72 | "CVE-2021-34396", 73 | "CVE-2021-34397" 74 | ], 75 | "Matt BattenPaolo Stagno": [ 76 | "CVE-2021-1079" 77 | ], 78 | "Aleksandar Milenkoski": [ 79 | "CVE-2021-1072" 80 | ], 81 | "Enno Rey Netzwerke": [ 82 | "CVE-2021-1072" 83 | ], 84 | "Michael de Gans": [ 85 | "CVE-2021-1070" 86 | ], 87 | "Billy Laws": [ 88 | "CVE-2021-1069" 89 | ], 90 | "Rotem Sela": [ 91 | "CVE-2021-1067" 92 | ], 93 | "Brian Mastenbrook": [ 94 | "CVE-2021-1067" 95 | ], 96 | "Xinyuan Lyu": [ 97 | "CVE-2021-1056" 98 | ] 99 | }, 100 | { 101 | "year": "2020", 102 | "Hou JingYi (@hjy79425575)": [ 103 | "CVE-2020-5992" 104 | ], 105 | "Weidang Peng": [ 106 | "CVE-2020-5991" 107 | ], 108 | "Sergey Gordeychik": [ 109 | "CVE-2020-11486", 110 | "CVE-2020-11488" 111 | ], 112 | "Roman Palkin": [ 113 | "CVE-2020-11486", 114 | "CVE-2020-11488" 115 | ], 116 | "Maria Samoylova": [ 117 | "CVE-2020-11486", 118 | "CVE-2020-11488" 119 | ], 120 | "Denis Kolegov": [ 121 | "CVE-2020-11486", 122 | "CVE-2020-11488" 123 | ], 124 | "Boris Ryutin": [ 125 | "CVE-2020-5977" 126 | ], 127 | "Xavier DANEST - Decathlon": [ 128 | "CVE-2020-5977" 129 | ], 130 | "Hashim Jawad": [ 131 | "CVE-2020-5978", 132 | "CVE-2020-5990" 133 | ], 134 | "Jo Hemmerlein": [ 135 | "CVE-2020-5979" 136 | ], 137 | "Andy Gill": [ 138 | "CVE-2020-5980" 139 | ], 140 | "Piotr Bania": [ 141 | "CVE-2020-5965" 142 | ], 143 | "Rhet Evans": [ 144 | "CVE-2020-5975" 145 | ], 146 | "Martino Trevisan": [ 147 | "CVE-2020-5976" 148 | ], 149 | "Michael de Gans": [ 150 | "CVE-2020-5974" 151 | ], 152 | "Ammarit Thongthua": [ 153 | "CVE-2020-5962" 154 | ], 155 | "Sittikorn Sangrattanapitak": [ 156 | "CVE-2020-5962" 157 | ], 158 | "Thomas E. Carroll": [ 159 | "CVE-2020-5963" 160 | ], 161 | "Zhiniang Peng": [ 162 | "CVE-2020-5957" 163 | ], 164 | "Xuefeng Li": [ 165 | "CVE-2020-5957" 166 | ] 167 | }, 168 | { 169 | "year": "2019", 170 | "Ryan Grachek": [ 171 | "CVE-2019-5700" 172 | ], 173 | "Hashim Jawad": [ 174 | "CVE-2019-5701" 175 | ], 176 | "Peleg Hadar": [ 177 | "CVE-2019-5694", 178 | "CVE-2019-5695" 179 | ], 180 | "Siyuan Yi": [ 181 | "CVE-2019-5689" 182 | ], 183 | "Lucas Pinheiro": [ 184 | "CVE-2019-5692" 185 | ], 186 | "Jesse Michael": [ 187 | "CVE-2019-5688" 188 | ], 189 | "Mickey Shkatov": [ 190 | "N/A" 191 | ], 192 | "Yousra Aafer": [ 193 | "CVE-2019-5681" 194 | ], 195 | "Leron Gray": [ 196 | "CVE-2019-5682" 197 | ], 198 | "Piotr Bania": [ 199 | "CVE-2019-5684", 200 | "CVE-2019-5685" 201 | ], 202 | "Balázs Triszka": [ 203 | "CVE-2019-5680" 204 | ], 205 | "David Yesland": [ 206 | "CVE-2019-5674" 207 | ], 208 | "Arvind Shah": [ 209 | "CVE-2019-5676" 210 | ], 211 | "Łukasz": [ 212 | "CVE-2019-5676" 213 | ], 214 | "Yasin Soliman": [ 215 | "CVE-2019-5676" 216 | ], 217 | "Marius Gabriel Mihai": [ 218 | "CVE-2019-5676" 219 | ], 220 | "Stefan Kanthak": [ 221 | "CVE-2019-5676" 222 | ], 223 | "Jesse Raffa": [ 224 | "CVE-2019-5672" 225 | ], 226 | "Christ": [ 227 | "CVE-2019-5665" 228 | ], 229 | "Pankaj Kumar": [ 230 | "N/A" 231 | ], 232 | "JangJesse Michael": [ 233 | "N/A" 234 | ] 235 | }, 236 | { 237 | "year": "2018", 238 | "Akshay Jain": [ 239 | "CVE-2018-6266" 240 | ], 241 | "Pierre-Alexandre Braeken": [ 242 | "CVE-2018-6263" 243 | ], 244 | "Hoda Naghibijouybari": [ 245 | "CVE-2018-6260" 246 | ], 247 | "Ajaya Neupane": [ 248 | "CVE-2018-6260" 249 | ], 250 | "Zhiyun Qian": [ 251 | "CVE-2018-6260" 252 | ], 253 | "Nael Abu-Ghazaleh": [ 254 | "CVE-2018-6260" 255 | ], 256 | "Mark Barnes": [ 257 | "CVE-2018-6261" 258 | ], 259 | "Kate Temkin": [ 260 | "CVE-2018-6242" 261 | ], 262 | "Piotr Bania": [ 263 | "CVE-2018-6251" 264 | ], 265 | "Gehan Kaushal": [ 266 | "N/A" 267 | ], 268 | "Hassy Vinod": [ 269 | "N/A" 270 | ] 271 | }, 272 | { 273 | "year": "2017", 274 | "Andriy Noble": [ 275 | "N/A" 276 | ], 277 | "Nathan Crandall": [ 278 | "CVE-2017-0306", 279 | "CVE-2016-6915", 280 | "CVE-2016-6916", 281 | "CVE-2016-6917" 282 | ], 283 | "Tim Harrison": [ 284 | "N/A" 285 | ], 286 | "Enrique Nissim": [ 287 | "CVE-2017-6256" 288 | ], 289 | "Andrei Lascu": [ 290 | "CVE-2017-6259" 291 | ], 292 | "Alastair Donaldson": [ 293 | "CVE-2017-6259" 294 | ], 295 | "Oliver Chang": [ 296 | "CVE-2017-0312", 297 | "CVE-2017-0313" 298 | ], 299 | "Ryan Whitworth": [ 300 | "CVE-2017-0317" 301 | ], 302 | "Kushal Arvind Shah": [ 303 | "N/A" 304 | ] 305 | }, 306 | { 307 | "year": "2016", 308 | "Oden Schmit": [ 309 | "CVE-2016-8827" 310 | ], 311 | "Oliver Chang": [ 312 | "CVE-2016-8805", 313 | "CVE-2016-8806", 314 | "CVE-2016-8807", 315 | "CVE-2016-8808", 316 | "CVE-2016-8809", 317 | "CVE-2016-8810", 318 | "CVE-2016-8811", 319 | "CVE-2016-8812", 320 | "CVE-2016-7391", 321 | "CVE-2016-7387", 322 | "CVE-2016-7385", 323 | "CVE-2016-7390", 324 | "CVE-2016-7384", 325 | "CVE-2016-7386" 326 | ], 327 | "Piotr Bania": [ 328 | "CVE-2016-8823" 329 | ], 330 | "Nathan Crandall": [ 331 | "CVE-2016-3847", 332 | "CVE-2016-3848" 333 | ], 334 | "Peter Pi": [ 335 | "CVE-2016-3793" 336 | ], 337 | "Scott Bauer": [ 338 | "CVE-2016-3815" 339 | ], 340 | "Chiachih Wu": [ 341 | "CVE-2016-2437" 342 | ], 343 | "Mingjian Zhou": [ 344 | "CVE-2016-3933" 345 | ], 346 | "Xuxian Jiang": [ 347 | "CVE-2016-2437" 348 | ], 349 | "Sagi Kedmi": [ 350 | "CVE-2016-3873" 351 | ], 352 | "Jianqiang Zhao": [ 353 | "CVE-2016-2434", 354 | "CVE-2016-2435", 355 | "CVE-2016-2436", 356 | "CVE-2016-2445", 357 | "CVE-2016-2446" 358 | ], 359 | "PJF": [ 360 | "CVE-2016-2434", 361 | "CVE-2016-2435", 362 | "CVE-2016-2436", 363 | "CVE-2016-2445", 364 | "CVE-2016-2446" 365 | ], 366 | "Alin Ghica": [ 367 | "CVE-2016-3161", 368 | "CVE-2016-5852" 369 | ], 370 | "Joseph Bialek": [ 371 | "CVE-2016-4960", 372 | "CVE-2016-4961" 373 | ], 374 | "Daniel Cornel": [ 375 | "CVE-2016-5025" 376 | ], 377 | "Yuan-Tsung Lo": [ 378 | "CVE-2016-2437" 379 | ], 380 | "Lubo Zhang": [ 381 | "CVE-2016-2437" 382 | ] 383 | }, 384 | { 385 | "year": "2015", 386 | "Joshua J. Drake": [ 387 | "CVE-2015-1538", 388 | "CVE-2015-1539", 389 | "CVE-2015-3824", 390 | "CVE-2015-3826", 391 | "CVE-2015-3827", 392 | "CVE-2015-3828", 393 | "CVE-2015-3829", 394 | "CVE-2015-3864" 395 | ], 396 | "Axel Monroy": [ 397 | "CVE-2015-7869" 398 | ], 399 | "Nikita Tarakanov": [ 400 | "CVE-2015-7869" 401 | ], 402 | "Wesley Daniels": [ 403 | "CVE-2015-7866" 404 | ], 405 | "Dario Weisser": [ 406 | "CVE-2015-5950" 407 | ], 408 | "James Forshaw": [ 409 | "CVE-2015-1170" 410 | ] 411 | }, 412 | { 413 | "year": "2014", 414 | "Lee Campbell": [ 415 | "CVE-2014-5332" 416 | ], 417 | "Adam Jackson": [ 418 | "CVE-2014-8093", 419 | "CVE-2014-8098" 420 | ], 421 | "Alan Coopersmith": [ 422 | "CVE-2014-8093", 423 | "CVE-2014-8098" 424 | ], 425 | "Robert Morell": [ 426 | "CVE-2014-8298" 427 | ] 428 | }, 429 | { 430 | "year": "2013", 431 | "Marcin Kościelnicki": [ 432 | "CVE-2013-5987" 433 | ] 434 | } 435 | ] -------------------------------------------------------------------------------- /data/nvidia/data/dalao.json: -------------------------------------------------------------------------------- 1 | { 2 | "Leonardo Galli": { 3 | "url": null, 4 | "cve": [ 5 | "CVE-2022-21821" 6 | ] 7 | }, 8 | "Jeremy Brown": { 9 | "url": null, 10 | "cve": [ 11 | "CVE-2022-21820" 12 | ] 13 | }, 14 | "Oliver Sellwood": { 15 | "url": null, 16 | "cve": [ 17 | "CVE-2022-21822" 18 | ] 19 | }, 20 | "Bennie Affleck": { 21 | "url": null, 22 | "cve": [ 23 | "CVE-2022-21819" 24 | ] 25 | }, 26 | "Magnus Bergman": { 27 | "url": null, 28 | "cve": [ 29 | "CVE-2022-21818" 30 | ] 31 | }, 32 | "Billy Laws": { 33 | "url": null, 34 | "cve": [ 35 | "CVE-2021-34406", 36 | "CVE-2021-1069" 37 | ] 38 | }, 39 | "David Köhler": { 40 | "url": null, 41 | "cve": [ 42 | "CVE-2021-23175" 43 | ] 44 | }, 45 | "Alexander Tereshkin": { 46 | "url": null, 47 | "cve": [ 48 | "CVE-2021-0144" 49 | ] 50 | }, 51 | "Alexander Matrosov": { 52 | "url": null, 53 | "cve": [ 54 | "CVE-2021-0144" 55 | ] 56 | }, 57 | "Adam ‘": { 58 | "url": null, 59 | "cve": [ 60 | "CVE-2021-0144" 61 | ] 62 | }, 63 | "Fabian Toepfer": { 64 | "url": null, 65 | "cve": [ 66 | "CVE-2021-1090", 67 | "CVE-2021-1095", 68 | "CVE-2021-1096" 69 | ] 70 | }, 71 | "Wenxiang Qian": { 72 | "url": null, 73 | "cve": [ 74 | "CVE-2021-1082", 75 | "CVE-2021-1084", 76 | "CVE-2021-1087" 77 | ] 78 | }, 79 | "Frédéric Perriot": { 80 | "url": null, 81 | "cve": [ 82 | "CVE-2021-34372", 83 | "CVE-2021-34373", 84 | "CVE-2021-34374", 85 | "CVE-2021-34375", 86 | "CVE-2021-34376", 87 | "CVE-2021-34377", 88 | "CVE-2021-34378", 89 | "CVE-2021-34379", 90 | "CVE-2021-34380", 91 | "CVE-2021-34381", 92 | "CVE-2021-34382", 93 | "CVE-2021-34383", 94 | "CVE-2021-34384", 95 | "CVE-2021-34385", 96 | "CVE-2021-34386", 97 | "CVE-2021-34387", 98 | "CVE-2021-34388", 99 | "CVE-2021-34389", 100 | "CVE-2021-34390", 101 | "CVE-2021-34391", 102 | "CVE-2021-34392", 103 | "CVE-2021-34393", 104 | "CVE-2021-34394", 105 | "CVE-2021-34395", 106 | "CVE-2021-34396", 107 | "CVE-2021-34397" 108 | ] 109 | }, 110 | "Matt BattenPaolo Stagno": { 111 | "url": null, 112 | "cve": [ 113 | "CVE-2021-1079" 114 | ] 115 | }, 116 | "Aleksandar Milenkoski": { 117 | "url": null, 118 | "cve": [ 119 | "CVE-2021-1072" 120 | ] 121 | }, 122 | "Enno Rey Netzwerke": { 123 | "url": null, 124 | "cve": [ 125 | "CVE-2021-1072" 126 | ] 127 | }, 128 | "Michael de Gans": { 129 | "url": null, 130 | "cve": [ 131 | "CVE-2021-1070", 132 | "CVE-2020-5974" 133 | ] 134 | }, 135 | "Rotem Sela": { 136 | "url": null, 137 | "cve": [ 138 | "CVE-2021-1067" 139 | ] 140 | }, 141 | "Brian Mastenbrook": { 142 | "url": null, 143 | "cve": [ 144 | "CVE-2021-1067" 145 | ] 146 | }, 147 | "Xinyuan Lyu": { 148 | "url": null, 149 | "cve": [ 150 | "CVE-2021-1056" 151 | ] 152 | }, 153 | "Hou JingYi (@hjy79425575)": { 154 | "url": null, 155 | "cve": [ 156 | "CVE-2020-5992" 157 | ] 158 | }, 159 | "Weidang Peng": { 160 | "url": null, 161 | "cve": [ 162 | "CVE-2020-5991" 163 | ] 164 | }, 165 | "Sergey Gordeychik": { 166 | "url": null, 167 | "cve": [ 168 | "CVE-2020-11486", 169 | "CVE-2020-11488" 170 | ] 171 | }, 172 | "Roman Palkin": { 173 | "url": null, 174 | "cve": [ 175 | "CVE-2020-11486", 176 | "CVE-2020-11488" 177 | ] 178 | }, 179 | "Maria Samoylova": { 180 | "url": null, 181 | "cve": [ 182 | "CVE-2020-11486", 183 | "CVE-2020-11488" 184 | ] 185 | }, 186 | "Denis Kolegov": { 187 | "url": null, 188 | "cve": [ 189 | "CVE-2020-11486", 190 | "CVE-2020-11488" 191 | ] 192 | }, 193 | "Boris Ryutin": { 194 | "url": null, 195 | "cve": [ 196 | "CVE-2020-5977" 197 | ] 198 | }, 199 | "Xavier DANEST - Decathlon": { 200 | "url": null, 201 | "cve": [ 202 | "CVE-2020-5977" 203 | ] 204 | }, 205 | "Hashim Jawad": { 206 | "url": null, 207 | "cve": [ 208 | "CVE-2020-5978", 209 | "CVE-2020-5990", 210 | "CVE-2019-5701" 211 | ] 212 | }, 213 | "Jo Hemmerlein": { 214 | "url": null, 215 | "cve": [ 216 | "CVE-2020-5979" 217 | ] 218 | }, 219 | "Andy Gill": { 220 | "url": null, 221 | "cve": [ 222 | "CVE-2020-5980" 223 | ] 224 | }, 225 | "Piotr Bania": { 226 | "url": null, 227 | "cve": [ 228 | "CVE-2020-5965", 229 | "CVE-2019-5684", 230 | "CVE-2019-5685", 231 | "CVE-2018-6251", 232 | "CVE-2016-8823" 233 | ] 234 | }, 235 | "Rhet Evans": { 236 | "url": null, 237 | "cve": [ 238 | "CVE-2020-5975" 239 | ] 240 | }, 241 | "Martino Trevisan": { 242 | "url": null, 243 | "cve": [ 244 | "CVE-2020-5976" 245 | ] 246 | }, 247 | "Ammarit Thongthua": { 248 | "url": null, 249 | "cve": [ 250 | "CVE-2020-5962" 251 | ] 252 | }, 253 | "Sittikorn Sangrattanapitak": { 254 | "url": null, 255 | "cve": [ 256 | "CVE-2020-5962" 257 | ] 258 | }, 259 | "Thomas E. Carroll": { 260 | "url": null, 261 | "cve": [ 262 | "CVE-2020-5963" 263 | ] 264 | }, 265 | "Zhiniang Peng": { 266 | "url": "https://twitter.com/edwardzpeng", 267 | "cve": [ 268 | "CVE-2020-5957" 269 | ] 270 | }, 271 | "Xuefeng Li": { 272 | "url": "https://twitter.com/lxf02942370", 273 | "cve": [ 274 | "CVE-2020-5957" 275 | ] 276 | }, 277 | "Ryan Grachek": { 278 | "url": null, 279 | "cve": [ 280 | "CVE-2019-5700" 281 | ] 282 | }, 283 | "Peleg Hadar": { 284 | "url": null, 285 | "cve": [ 286 | "CVE-2019-5694", 287 | "CVE-2019-5695" 288 | ] 289 | }, 290 | "Siyuan Yi": { 291 | "url": null, 292 | "cve": [ 293 | "CVE-2019-5689" 294 | ] 295 | }, 296 | "Lucas Pinheiro": { 297 | "url": null, 298 | "cve": [ 299 | "CVE-2019-5692" 300 | ] 301 | }, 302 | "Jesse Michael": { 303 | "url": null, 304 | "cve": [ 305 | "CVE-2019-5688" 306 | ] 307 | }, 308 | "Mickey Shkatov": { 309 | "url": null, 310 | "cve": [ 311 | "N/A" 312 | ] 313 | }, 314 | "Yousra Aafer": { 315 | "url": null, 316 | "cve": [ 317 | "CVE-2019-5681" 318 | ] 319 | }, 320 | "Leron Gray": { 321 | "url": null, 322 | "cve": [ 323 | "CVE-2019-5682" 324 | ] 325 | }, 326 | "Balázs Triszka": { 327 | "url": null, 328 | "cve": [ 329 | "CVE-2019-5680" 330 | ] 331 | }, 332 | "David Yesland": { 333 | "url": null, 334 | "cve": [ 335 | "CVE-2019-5674" 336 | ] 337 | }, 338 | "Arvind Shah": { 339 | "url": null, 340 | "cve": [ 341 | "CVE-2019-5676" 342 | ] 343 | }, 344 | "Łukasz": { 345 | "url": null, 346 | "cve": [ 347 | "CVE-2019-5676" 348 | ] 349 | }, 350 | "Yasin Soliman": { 351 | "url": null, 352 | "cve": [ 353 | "CVE-2019-5676" 354 | ] 355 | }, 356 | "Marius Gabriel Mihai": { 357 | "url": null, 358 | "cve": [ 359 | "CVE-2019-5676" 360 | ] 361 | }, 362 | "Stefan Kanthak": { 363 | "url": "http://eskamation.de", 364 | "cve": [ 365 | "CVE-2019-5676" 366 | ] 367 | }, 368 | "Jesse Raffa": { 369 | "url": null, 370 | "cve": [ 371 | "CVE-2019-5672" 372 | ] 373 | }, 374 | "Christ": { 375 | "url": null, 376 | "cve": [ 377 | "CVE-2019-5665" 378 | ] 379 | }, 380 | "Pankaj Kumar": { 381 | "url": null, 382 | "cve": [ 383 | "N/A" 384 | ] 385 | }, 386 | "JangJesse Michael": { 387 | "url": null, 388 | "cve": [ 389 | "N/A" 390 | ] 391 | }, 392 | "Akshay Jain": { 393 | "url": null, 394 | "cve": [ 395 | "CVE-2018-6266" 396 | ] 397 | }, 398 | "Pierre-Alexandre Braeken": { 399 | "url": null, 400 | "cve": [ 401 | "CVE-2018-6263" 402 | ] 403 | }, 404 | "Hoda Naghibijouybari": { 405 | "url": null, 406 | "cve": [ 407 | "CVE-2018-6260" 408 | ] 409 | }, 410 | "Ajaya Neupane": { 411 | "url": null, 412 | "cve": [ 413 | "CVE-2018-6260" 414 | ] 415 | }, 416 | "Zhiyun Qian": { 417 | "url": null, 418 | "cve": [ 419 | "CVE-2018-6260" 420 | ] 421 | }, 422 | "Nael Abu-Ghazaleh": { 423 | "url": null, 424 | "cve": [ 425 | "CVE-2018-6260" 426 | ] 427 | }, 428 | "Mark Barnes": { 429 | "url": null, 430 | "cve": [ 431 | "CVE-2018-6261" 432 | ] 433 | }, 434 | "Kate Temkin": { 435 | "url": null, 436 | "cve": [ 437 | "CVE-2018-6242" 438 | ] 439 | }, 440 | "Gehan Kaushal": { 441 | "url": null, 442 | "cve": [ 443 | "N/A" 444 | ] 445 | }, 446 | "Hassy Vinod": { 447 | "url": null, 448 | "cve": [ 449 | "N/A" 450 | ] 451 | }, 452 | "Andriy Noble": { 453 | "url": null, 454 | "cve": [ 455 | "N/A" 456 | ] 457 | }, 458 | "Nathan Crandall": { 459 | "url": null, 460 | "cve": [ 461 | "CVE-2017-0306", 462 | "CVE-2016-6915", 463 | "CVE-2016-6916", 464 | "CVE-2016-6917", 465 | "CVE-2016-3847", 466 | "CVE-2016-3848" 467 | ] 468 | }, 469 | "Tim Harrison": { 470 | "url": null, 471 | "cve": [ 472 | "N/A" 473 | ] 474 | }, 475 | "Enrique Nissim": { 476 | "url": "https://twitter.com/kiquenissim", 477 | "cve": [ 478 | "CVE-2017-6256" 479 | ] 480 | }, 481 | "Andrei Lascu": { 482 | "url": null, 483 | "cve": [ 484 | "CVE-2017-6259" 485 | ] 486 | }, 487 | "Alastair Donaldson": { 488 | "url": null, 489 | "cve": [ 490 | "CVE-2017-6259" 491 | ] 492 | }, 493 | "Oliver Chang": { 494 | "url": null, 495 | "cve": [ 496 | "CVE-2017-0312", 497 | "CVE-2017-0313", 498 | "CVE-2016-8805", 499 | "CVE-2016-8806", 500 | "CVE-2016-8807", 501 | "CVE-2016-8808", 502 | "CVE-2016-8809", 503 | "CVE-2016-8810", 504 | "CVE-2016-8811", 505 | "CVE-2016-8812", 506 | "CVE-2016-7391", 507 | "CVE-2016-7387", 508 | "CVE-2016-7385", 509 | "CVE-2016-7390", 510 | "CVE-2016-7384", 511 | "CVE-2016-7386" 512 | ] 513 | }, 514 | "Ryan Whitworth": { 515 | "url": null, 516 | "cve": [ 517 | "CVE-2017-0317" 518 | ] 519 | }, 520 | "Kushal Arvind Shah": { 521 | "url": null, 522 | "cve": [ 523 | "N/A" 524 | ] 525 | }, 526 | "Oden Schmit": { 527 | "url": null, 528 | "cve": [ 529 | "CVE-2016-8827" 530 | ] 531 | }, 532 | "Peter Pi": { 533 | "url": null, 534 | "cve": [ 535 | "CVE-2016-3793" 536 | ] 537 | }, 538 | "Scott Bauer": { 539 | "url": null, 540 | "cve": [ 541 | "CVE-2016-3815" 542 | ] 543 | }, 544 | "Chiachih Wu": { 545 | "url": null, 546 | "cve": [ 547 | "CVE-2016-2437" 548 | ] 549 | }, 550 | "Mingjian Zhou": { 551 | "url": null, 552 | "cve": [ 553 | "CVE-2016-3933" 554 | ] 555 | }, 556 | "Xuxian Jiang": { 557 | "url": null, 558 | "cve": [ 559 | "CVE-2016-2437" 560 | ] 561 | }, 562 | "Sagi Kedmi": { 563 | "url": null, 564 | "cve": [ 565 | "CVE-2016-3873" 566 | ] 567 | }, 568 | "Jianqiang Zhao": { 569 | "url": null, 570 | "cve": [ 571 | "CVE-2016-2434", 572 | "CVE-2016-2435", 573 | "CVE-2016-2436", 574 | "CVE-2016-2445", 575 | "CVE-2016-2446" 576 | ] 577 | }, 578 | "PJF": { 579 | "url": null, 580 | "cve": [ 581 | "CVE-2016-2434", 582 | "CVE-2016-2435", 583 | "CVE-2016-2436", 584 | "CVE-2016-2445", 585 | "CVE-2016-2446" 586 | ] 587 | }, 588 | "Alin Ghica": { 589 | "url": null, 590 | "cve": [ 591 | "CVE-2016-3161", 592 | "CVE-2016-5852" 593 | ] 594 | }, 595 | "Joseph Bialek": { 596 | "url": null, 597 | "cve": [ 598 | "CVE-2016-4960", 599 | "CVE-2016-4961" 600 | ] 601 | }, 602 | "Daniel Cornel": { 603 | "url": null, 604 | "cve": [ 605 | "CVE-2016-5025" 606 | ] 607 | }, 608 | "Yuan-Tsung Lo": { 609 | "url": null, 610 | "cve": [ 611 | "CVE-2016-2437" 612 | ] 613 | }, 614 | "Lubo Zhang": { 615 | "url": null, 616 | "cve": [ 617 | "CVE-2016-2437" 618 | ] 619 | }, 620 | "Joshua J. Drake": { 621 | "url": null, 622 | "cve": [ 623 | "CVE-2015-1538", 624 | "CVE-2015-1539", 625 | "CVE-2015-3824", 626 | "CVE-2015-3826", 627 | "CVE-2015-3827", 628 | "CVE-2015-3828", 629 | "CVE-2015-3829", 630 | "CVE-2015-3864" 631 | ] 632 | }, 633 | "Axel Monroy": { 634 | "url": null, 635 | "cve": [ 636 | "CVE-2015-7869" 637 | ] 638 | }, 639 | "Nikita Tarakanov": { 640 | "url": null, 641 | "cve": [ 642 | "CVE-2015-7869" 643 | ] 644 | }, 645 | "Wesley Daniels": { 646 | "url": null, 647 | "cve": [ 648 | "CVE-2015-7866" 649 | ] 650 | }, 651 | "Dario Weisser": { 652 | "url": null, 653 | "cve": [ 654 | "CVE-2015-5950" 655 | ] 656 | }, 657 | "James Forshaw": { 658 | "url": null, 659 | "cve": [ 660 | "CVE-2015-1170" 661 | ] 662 | }, 663 | "Lee Campbell": { 664 | "url": null, 665 | "cve": [ 666 | "CVE-2014-5332" 667 | ] 668 | }, 669 | "Adam Jackson": { 670 | "url": null, 671 | "cve": [ 672 | "CVE-2014-8093", 673 | "CVE-2014-8098" 674 | ] 675 | }, 676 | "Alan Coopersmith": { 677 | "url": null, 678 | "cve": [ 679 | "CVE-2014-8093", 680 | "CVE-2014-8098" 681 | ] 682 | }, 683 | "Robert Morell": { 684 | "url": null, 685 | "cve": [ 686 | "CVE-2014-8298" 687 | ] 688 | }, 689 | "Marcin Kościelnicki": { 690 | "url": null, 691 | "cve": [ 692 | "CVE-2013-5987" 693 | ] 694 | } 695 | } -------------------------------------------------------------------------------- /data/namelist.json: -------------------------------------------------------------------------------- 1 | { 2 | "Wenxu Wu": "https://twitter.com/ma7h1as", 3 | "Zhiniang Peng": "https://twitter.com/edwardzpeng", 4 | "Walied Assar": "https://twitter.com/waleedassar", 5 | "Huynh Phuoc Hung": "https://twitter.com/hph0var", 6 | "David Erceg": "https://www.daviderceg.com", 7 | "MOHIT RAJ": "https://hackerone.com/shadow2639", 8 | "YanZiShuang": "https://twitter.com/YanZiShuang", 9 | "NDevTK": "https://twitter.com/ndevtk", 10 | "Ronnie Salomonsen": "https://twitter.com/r0ns3n", 11 | "Wladimir Palant": "https://palant.info", 12 | "Lars Eidnes": "https://twitter.com/larseidnes", 13 | "ZiMi": "https://twitter.com/yhzx_2013", 14 | "Xuefeng Li": "https://twitter.com/lxf02942370", 15 | "Zesen Ye": "https://twitter.com/wh1tc", 16 | "Milan Kyselica": "https://www.linkedin.com/in/mkyselica", 17 | "Azure Yang": "https://twitter.com/4zure9", 18 | "HyungSeok Han": "https://twitter.com/daramg_h", 19 | "Zhang WangJunJie": "https://twitter.com/syjzwjj", 20 | "k0shl": "https://twitter.com/KeyZ3r0", 21 | "Ver": "https://twitter.com/ver0759", 22 | "Lewis": "https://twitter.com/lewislee53", 23 | "JeongOh Kyea": "https://twitter.com/kkokkokye", 24 | "Markus Wulftange": "https://twitter.com/mwulftange", 25 | "Alex Nichols": "https://twitter.com/i4mchr00t", 26 | "rezer0dai": "https://twitter.com/rezer0dai", 27 | "Brandon Chong Wee Kiat": "https://milotruck.github.io", 28 | "bugwhale": "https://twitter.com/bugwhale", 29 | "MUHAMMAD ZAID GHIFARI": "https://www.instagram.com/zaid_ghiffarii", 30 | "Alon Zahavi": "https://twitter.com/alon_z4", 31 | "Nir Chako": "https://twitter.com/c_h4ck_0", 32 | "Oliver Lyak": "https://twitter.com/ly4k_", 33 | "Young Min Kim": "https://github.com/ylemkimon", 34 | "Harsh Tyagi": "https://www.linkedin.com/in/harsh-tyagi-1468b3193", 35 | "JaeHeng Yoon": "https://twitter.com/onnoveath", 36 | "ziming zhang": "https://twitter.com/ezrak1e", 37 | "Bo Wu": "https://wubonetcn.github.io", 38 | "bee13oy": "https://twitter.com/bee13oy", 39 | "Abdelhamid Naceri": "https://halove23.blogspot.com", 40 | "Jinquan": "https://twitter.com/jq0904", 41 | "Thibault Van Geluwe de Berlaere": "https://twitter.com/tvgdb2", 42 | "RyeLv": "https://twitter.com/b2ahex", 43 | "Steven Seeley": "https://srcincite.io", 44 | "Fabian Schmidt": "https://www.linkedin.com/in/fabian-schmidt-42-", 45 | "Zhihua Yao": "https://twitter.com/hackyzh", 46 | "Stefan Kanthak": "http://eskamation.de", 47 | "BugHunter010": "https://www.cyberkl.com", 48 | "Thunder J": "https://twitter.com/thunderj17", 49 | "Boxer": "https://twitter.com/secboxer", 50 | "Hcamael": "https://nobb.site", 51 | "KnownSec 404 Team": "https://www.knownsec.com", 52 | "Tongqing Zhu": "https://twitter.com/dawuj4f", 53 | "sunglin": "https://www.zhihu.com/people/li-song-lin-44", 54 | "Polar Bear": "https://www.youtube.com/watch?v=0AhPC_dHkHo", 55 | "Mikhail Medvedev": "https://m3ikshizuka.github.io", 56 | "Etienne Champetier": "https://blog.champtar.fr", 57 | "G\u00e1bor Selj\u00e1n": "https://twitter.com/gaborseljan", 58 | "Gabriel Sztejnworcel": "https://github.com/gabriel-sztejnworcel", 59 | "with CyberArk": "https://labs.cyberark.com", 60 | "Leo Adrien": "https://twitter.com/australeo", 61 | "ShiLongan": "https://twitter.com/rwxcode", 62 | "Yuhao Weng": "https://twitter.com/cjm00nw", 63 | "Pham Van Khanh": "http://vnprogramming.com", 64 | "Andrew Ruddick": "https://twitter.com/arudd1ck", 65 | "s1r1us": "https://twitter.com/s1r1u5_", 66 | "Max Garrett": "https://twitter.com/pewgrand", 67 | "Parsia Hakimian": "https://parsiya.net", 68 | "Han Yong Lim": "https://www.linkedin.com/in/han-yong-lim-312b88a7", 69 | "Rami Abughazaleh": "https://www.linkedin.com/in/rabughazaleh", 70 | "Paul Gerste": "https://twitter.com/pspaul95", 71 | "Thomas Chauchefoin": "https://twitter.com/swapgs", 72 | "Andrew Brandt": "https://twitter.com/threatresearch", 73 | "Thomas Bouzerar": "https://twitter.com/MajorTomSec", 74 | "Bl1nnnk": "https://twitter.com/bl1nnnk", 75 | "rskvp93": "https://twitter.com/rskvp93", 76 | "TJ Bunnell": "https://www.linkedin.com/in/tj-bunnell-57130a138", 77 | "Laith AL-Satari": "https://twitter.com/laith_satari", 78 | "Asuka": "https://www.cyberkl.com", 79 | "Tao Yan": "https://twitter.com/ga1ois", 80 | "Kasif Dekel": "https://twitter.com/kasifdekel", 81 | "Sooraj KS": "https://twitter.com/soorajks", 82 | "Kirtikumar Anandrao Ramchandani": "https://twitter.com/Kirtikumar_A_R", 83 | "Karl Fosaaen": "https://twitter.com/kfosaaen", 84 | "AllScripts": "https://www.allscripts.com", 85 | "bo13oy": "https://twitter.com/bo13oy", 86 | "Ilias Dimopoulos": "https://labs.redyops.com", 87 | "Simon Barsky": "https://twitter.com/expend20", 88 | "Wabaf3t": "https://twitter.com/wabafet1", 89 | "Ashish Kunwar": "https://twitter.com/d0rkerdevil", 90 | "Asaf Rubinfeld": "https://twitter.com/asafrub", 91 | "Shay Ber": "https://twitter.com/0F1F0F1F", 92 | "Prodware": "https://www.prodwaregroup.com/es-es", 93 | "Kim Oppalfens": "https://twitter.com/thewmiguy", 94 | "Nadish Shajahan": "https://in.linkedin.com/in/nadishs", 95 | "Nicolas Joly": "https://twitter.com/n_joly", 96 | "Ashar Javed": "https://twitter.com/soaj1664ashar", 97 | "Thomas Imbert": "https://twitter.com/masthoon", 98 | "j00sean": "https://twitter.com/j00sean", 99 | "Erik Egsgard": "https://twitter.com/hexnomad", 100 | "Cameron Vincent": "https://twitter.com/secretlyhidden1", 101 | "Yuki Chen": "https://twitter.com/guhe120", 102 | "Hardik Shah": "https://twitter.com/hardik05", 103 | "Boris Larin": "https://twitter.com/oct0xor", 104 | "Shankar R": "https://linkedin.com/in/shankar-ramakrishnan-a83577104", 105 | "Yong Chuan Koh": "https://twitter.com/yongchuank", 106 | "Omar Eissa": "https://www.linkedin.com/in/oeissa", 107 | "lalka": "https://twitter.com/0x01alka", 108 | "Nir Ohfeld": "https://twitter.com/nirohfeld", 109 | "Shir Tamari": "https://twitter.com/shirtamari", 110 | "Vansh Devgan": "https://linkedin.com/in/vanshdevgan", 111 | "Shivam Kumar Singh": "https://twitter.com/MrRajputHacker", 112 | "Tirtha Mandal": "https://twitter.com/tirtha_mandal", 113 | "RanchoIce": "https://twitter.com/zhanlulab", 114 | "rikirra": "https://twitter.com/rikirra", 115 | "Nagisa": "https://www.cyberkl.com", 116 | "Udi Yavo": "https://twitter.com/UdiYavo", 117 | "Justin Steven": "https://twitter.com/justinsteven", 118 | "Heqing Huang": "https://5hadowblad3.github.io", 119 | "Lili Wei": "https://liliweise.github.io", 120 | "Ron Masas": "https://ronmasas.com", 121 | "Colin Symon": "https://www.linkedin.com/in/colinsymon", 122 | "Eugene Lim": "https://sg.linkedin.com/in/limzhiweieugene", 123 | "Victor Mata": "https://twitter.com/offenseindepth", 124 | "Eyal Karni": "https://twitter.com/eyal_karni", 125 | "Peter St\u00f6ckli": "https://twitter.com/ulldma", 126 | "Le Huu Quang Linh": "https://twitter.com/linhlhq", 127 | "Yaron Zinar": "https://twitter.com/yaronzi", 128 | "Adam Willard": "https://www.aswsec.com", 129 | "Shivam Bathla": "https://www.linkedin.com/in/shivambathla", 130 | "Orange Tsai": "https://twitter.com/orange_8361", 131 | "Jinhua Cui": "https://twitter.com/jhcui24", 132 | "Jacob Baines": "https://twitter.com/Junior_Baines", 133 | "Timofte Daniel": "https://www.linkedin.com/in/timofte-daniel" , 134 | "David Dworken": "https://daviddworken.com", 135 | "Sven Nobis": "https://twitter.com/sven_to", 136 | "Craig Ingram": "https://twitter.com/cji", 137 | "Chris Alladoum": "https://blahcat.github.io", 138 | "Tran Van Khang": "https://twitter.com/khangkito", 139 | "Yigit Can YILMAZ": "https://twitter.com/yilmazcanyigit", 140 | "Dlive": "https://twitter.com/D1iv3", 141 | "Shweta Shinde": "https://twitter.com/shw3ta_shinde", 142 | "Narendra Bhati": "https://twitter.com/imnarendrabhati", 143 | "Prateek Saxena": "https://twitter.com/prateekatcs", 144 | "Zhijingcheng Yu": "https://twitter.com/corankyu", 145 | "Zhipeng Huo": "https://twitter.com/r3df09", 146 | "Piotr Madej": "https://www.linkedin.com/in/piotr-madej-18b0bb38", 147 | "diversenok": "https://twitter.com/diversenok_zero", 148 | "Michael Garrison": "https://twitter.com/p0shkatz", 149 | "Alex Birnberg": "https://alexbirnberg.com", 150 | "Ryelv": "https://twitter.com/b2ahex", 151 | "vemula Bhavani shankar": "https://www.linkedin.com/in/shankar-king-s-299919143", 152 | "Mathy Vanhoef": "https://www.mathyvanhoef.com", 153 | "Karan Chaudhary": "https://twitter.com/0xkaran", 154 | "Shih-Fong Peng": "https://twitter.com/_L4ys", 155 | "Mayx": "https://github.com/Mabbs", 156 | "RyotaK": "https://twitter.com/ryotkak", 157 | "Paul Hammond": "http://paulhammond.org", 158 | "Daniel Fernandez Kuehr": "https://twitter.com/ergot86", 159 | "Mico Fraxix": "https://www.linkedin.com/in/erfan-fazeli-092289b4", 160 | "Ademar Nowasky Junior": "https://nowasky.com", 161 | "Maxim Suhanov": "https://dfir.ru", 162 | "Imre Rad": "https://www.linkedin.com/in/imre-rad-2358749b", 163 | "Andrew J. Federico, Jr.": "https://www.afederico.com", 164 | "0xea31": "https://github.com/0xea31", 165 | "Saar Amar": "https://twitter.com/AmarSaar", 166 | "pgboy": "http://weibo.com/pgboy1988", 167 | "Enki": "https://enki.co.kr", 168 | "Gal De Leon": "https://twitter.com/galdeleon", 169 | "wtm": "https://twitter.com/wtm_offensi", 170 | "Offensi": "https://offensi.com", 171 | "Volexity": "https://www.volexity.com", 172 | "Huynh Thong": "https://www.linkedin.com/in/sysr00t", 173 | "liuxiaoliang": "https://twitter.com/flame36987044", 174 | "pjf": "https://weibo.com/jfpan", 175 | "Alex Birsan": "https://twitter.com/alxbrsn", 176 | "Cristian Pop": "https://github.com/CIPop", 177 | "DeepanRaj Modernmonk": "https://www.linkedin.com/in/Deepanraj95", 178 | "JunGu": "https://twitter.com/Bl1nnnk", 179 | "Anders Kusk": "https://improsec.com", 180 | "Marc Nimmerrichter": "https://twitter.com/nimmerrichterm", 181 | "Romain Carnus": "https://twitter.com/rcarnus", 182 | "Sai Wynn Myat": "https://twitter.com/404death", 183 | "Bruno Keith": "https://twitter.com/bkth_", 184 | "Jonathan Birch": "https://www.linkedin.com/in/jonathan-birch-ab27681", 185 | "Peter Hlavaty": "https://twitter.com/zer0mem", 186 | "Ahmed Jerbi": "https://twitter.com/A_Web_Plus", 187 | "VictorV": "https://twitter.com/vv474172261", 188 | "Matt Graeber": "https://twitter.com/mattifestation", 189 | "Matt Austin": "https://twitter.com/mattaustin", 190 | "anhkgg": "https://github.com/anhkgg", 191 | "pizzacat83": "https://github.com/pizzacat83", 192 | "Nafiez": "https://twitter.com/zeifan", 193 | "nafiez": "https://twitter.com/zeifan", 194 | "Raad Firas Haddad": "https://www.linkedin.com/in/raadhaddad", 195 | "S\u00f8ren Fritzb\u00f8ger": "https://twitter.com/fritzboger", 196 | "rgod": "https://9sgsec.com", 197 | "Ivan Vagunin": "https://twitter.com/ivagunin", 198 | "Jesus Rodriguez Fonteboa": "https://www.linkedin.com/in/jesus-rodriguez-fonteboa", 199 | "Nabeel Ahmed": "https://twitter.com/rogue_kdc", 200 | "Gabriele Pippi": "https://twitter.com/gabriele_pippi", 201 | "Tevfik DEM\u0130REL": "https://www.linkedin.com/in/tevfikd", 202 | "ASELSAN": "https://www.aselsan.com.tr", 203 | "Arthur Khudyaev": "https://twitter.com/gerhart_x", 204 | "Alesandro Ortiz": "https://AlesandroOrtiz.com", 205 | "Georgios Baltas": "https://twitter.com/gebaltas", 206 | "Ke Liu": "https://twitter.com/klotxl404", 207 | "He YiShen": "https://www.weibo.com/234391451", 208 | "Cl\u00e9ment Lavoillotte": "https://twitter.com/clavoillotte", 209 | "Haozhe Zhang": "haozhang@paloaltonetworks.com", 210 | "bear13oy": "https://twitter.com/bear13oy", 211 | "Xingwei Lin": "https://twitter.com/xwlin_roy", 212 | "Tom Tervoort": "tom.tervoort@secura.com", 213 | "Victor Portal Gonzalez": "https://es.linkedin.com/in/v%C3%ADctor-portal-gonz%C3%A1lez-38675357", 214 | "Sven Woynoski": "https://www.it-sec.de", 215 | "fluorescence": "https://twitter.com/fluoroacetate", 216 | "fluoroacetate": "https://twitter.com/fluoroacetate", 217 | "Fluoroacetate": "https://twitter.com/fluoroacetate", 218 | "Felipe Cerqueira dos Santos": "https://www.linkedin.com/in/felipecerqueirasantos", 219 | "Hangjun Go": "https://twitter.com/0neb1n", 220 | "Temel Do\u011fa GEL\u0130\u015eL\u0130": "https://www.linkedin.com/in/tdogagelisli", 221 | "Christopher Gurnee": "github.com/gurnec", 222 | "b2ahex": "https://twitter.com/b2ahex", 223 | "Thiago Luiz Dimbarre": "https://twitter.com/tdimbarre", 224 | "Kunal Pandey": "https://twitter.com/kunalp94", 225 | "Eran Shimony": "https://twitter.com/EranShimony", 226 | "fatal0": "https://twitter.com/fatal0_/", 227 | "Chris Danieli": "https://www.linkedin.com/in/chrisdanieli", 228 | "Fredrik Hoxell": "https://www.linkedin.com/in/fredrikhoxell", 229 | "Ozgur Alp": "https://ozguralp.com", 230 | "Qixun Zhao": "https://twitter.com/S0rryMybad", 231 | "Vikas Anil Sharma": "https://agilehunt.com", 232 | "Conor McErlane": "https://www.mcerlane.co.uk", 233 | "Anthony LAOU HINE TSUEI": "https://twitter.com/anarcheuz", 234 | "Matthew Lashner": "https://www.linkedin.com/in/matthewlashner", 235 | "Nadav Markus": "nmarkus@paloaltonetworks.com", 236 | "Yaron Samuel": "ysamuel@paloaltonetworks.com", 237 | "Daniel King": "https://twitter.com/long123king", 238 | "Stan Hegt": "https://www.twitter.com/stanhacked", 239 | "exp-sky": "http://exp-sky.org", 240 | "Kai Song": "http://exp-sky.org", 241 | "Vasileios Daskalakis": "https://www.linkedin.com/in/vdaskalakis", 242 | "Ethan Sterling": "https://twitter.com/esterling_", 243 | "Markus Pieton": "https://twitter.com/markus_pieton", 244 | "Christian Danieli": "https://twitter.com/padovah4ck", 245 | "dwfault": "https://twitter.com/dwfault", 246 | "ZhangSen": "http://c00c.cc", 247 | "T Shiomitsu": "https://www.pentestpartners.com", 248 | "zhong_sf": "http://weibo.com/2641521260", 249 | "Rich Mirch": "https://blog.mirch.io", 250 | "Reegun Richard J": "https://twitter.com/reegun21", 251 | "Soroush Dalili": "https://twitter.com/irsdl", 252 | "Aliaksandr Lebiadzevich": "https://www.secretdesktoppro.com", 253 | "Bence B\u00e1lint": "https://www.linkedin.com/in/bence-b\u00e1lint-47286a150", 254 | "Andrea Pierini": "https://twitter.com/decoder_it", 255 | "Suresh C": "https://plus.google.com/109511353019526855573", 256 | "Amit Klein": "http://www.securitygalore.com", 257 | "Benny Pinkas": "http://www.pinkas.net", 258 | "Seonung Jang": "https://twitter.com/Seonunghardt", 259 | "Tao Xie": "https://www.github.com/xietao1233", 260 | "Brxxn": "https://hackerone.com/brxxn", 261 | "Ryan Wincey": "https://twitter.com/rwincey", 262 | "Kai-Xiang Lei": "https://github.com/shyoshyo", 263 | "Abdulrahman Al-Qabandi": "https://twitter.com/Qab", 264 | "Yuval Ron": "https://www.linkedin.com/in/ronyuval", 265 | "Amichai Shulman": "https://www.linkedin.com/in/amichaishulman", 266 | "Eli Biham": "http://www.cs.technion.ac.il/~biham", 267 | "Debashish Swain": "https://www.linkedin.com/in/debashish-swain-33885210a", 268 | "Ajay Rajas": "https://www.linkedin.com/in/ajay-rajas-1661477", 269 | "Mallika Varahagiri": "https://www.linkedin.com/in/mallika-varahagiri-34ab7195", 270 | "Francesco Soncina": "https://iwantmore.pizza", 271 | "Siddhartha Tripathy": "http://linkedin.com/in/sidsg", 272 | "Tomasz Bojarski": "https://web-safety.net", 273 | "Shanti Lindstr\u00f6m": "https://linkedin.com/in/shanti-lindstr%c3%b6m-399112a8", 274 | "DonkeysTeam": "https://twitter.com/donkeysteam", 275 | "Juho Nurminen": "https://twitter.com/jupenur", 276 | "Soyeon Park": "https://thdusdl1219.github.io", 277 | "Mikhail Shcherbakov": "https://www.linkedin.com/in/mikhailshcherbakov", 278 | "Mateusz Garncarek": "https://www.linkedin.com/in/mateusz-garncarek-509241140", 279 | "David Cioccia": "https://www.linkedin.com/in/davidecioccia", 280 | "Zhou Aiting": "https://twitter.com/zhouat1", 281 | "Do\u011fukan Karaci\u011fer": "https://www.linkedin.com/in/dgkn-krcgr/", 282 | "Salem Faisal Elmrayed": "https://thekaitokid.blogspot.com", 283 | "R.J. McDown": "https://www.lares.com/about/lares-team/rj-mcdown", 284 | "Clement Notin": "https://twitter.com/cnotin", 285 | "Jack Lloyd": "https://www.linkedin.com/in/jacklloyd", 286 | "Gene Yoo": "https://resecurity.com", 287 | "Anton Cherepanov": "https://twitter.com/cherepanov74", 288 | "Zhong Zhaochen": "https://twitter.com/asnine", 289 | "Mike Crowley": "https://mikecrowley.us", 290 | "Tom Wyckhuys": "https://www.linkedin.com/in/tom-wyckhuys-202188a3", 291 | "Bryan Appleby": "https://twitter.com/bryapp", 292 | "Gaurav Kumar": "https://www.linkedin.com/in/gaurav-kumar-b39257166", 293 | "Sander Vanrapenbusch": "https://www.linkedin.com/in/sandervanrapenbusch", 294 | "Alexandre Becholey": "https://twitter.com/0xabe_io", 295 | "Eran Vaknin": "https://il.linkedin.com/in/eran-vaknin", 296 | "Alon Boxiner": "https://il.linkedin.com/in/alon-boxiner-a1a713b4", 297 | "Oded Vanunu": "https://il.linkedin.com/in/oded-vanunu-a131283", 298 | "John Page": "https://twitter.com/hyp3rlinx", 299 | "Suyoung Lee": "https://www.facebook.com/leeswimming", 300 | "Wesley Wineberg": "https://exfiltrated.com", 301 | "Yangkang": "https://twitter.com/dnpushme", 302 | "Tim Kent": "https://twitter.com/__timk", 303 | "Communications Security Establishment": "https://www.cse-cst.gc.ca", 304 | "Kaspersky Lab": "https://www.kaspersky.com/", 305 | "Sabri Haddouche": "https://wire.com", 306 | "Masato Kinugawa": "https://twitter.com/kinugawamasato", 307 | "Vladislav Stolyarov": "https://twitter.com/lalkaboltalka", 308 | "Ryan Hanson": "https://twitter.com/ryhanson", 309 | "Enrique Nissim": "https://twitter.com/kiquenissim", 310 | "hungtt28": "https://twitter.com/hungtt28", 311 | "Jens M\u00fcller": "http://www.nds.rub.de/chair/people/jmueller", 312 | "Johnathan Norman": "https://twitter.com/spoofyroot", 313 | "Debasish Mandal": "https://twitter.com/debasishm89", 314 | "fanxiaocao": "https://twitter.com/TinySecEx", 315 | "K\u00e9vin Chalet": "http://kevinchalet.com", 316 | "Weibo Wang": "https://twitter.com/ma1fan", 317 | "Xiaoyin Liu": "https://twitter.com/general_nfs", 318 | "kafeine": "https://twitter.com/kafeine", 319 | "Jaehun Jeong": "https://twitter.com/n3sk" 320 | } --------------------------------------------------------------------------------