The mutation-based grey box fuzz testing technique is one of the widely used dynamic vulnerability mining techniques. It generates test cases for testing by mutating input seeds. In the process of fuzz testing, the seed scheduling strategy and energy scheduling strategy impact the test results and efficiency. Existing seed scheduling strategies, however, only consider a few specific seed attributes and ignore contextual information during seed execution. This oversight makes it challenging to prioritize the selection of suitable seeds based on historical fuzz test results. Meanwhile, current methods for calculating coverage lack evaluation of software paths, which makes it easy to waste time on testing high-frequency and low-risk paths. This article proposes a new grey box fuzz scheme, LinFuzz, which transforms the seed scheduling problem into a contextual multi-arm bandit machine model. It utilizes the LinUCB algorithm to assess the value of seeds for scheduling by considering their historical execution information. At the same time, LinFuzz enhances the calculation method for fuzz testing path rewards and the seed energy scheduling algorithm. It allocates more energy for low-frequency paths in the testing program, thereby enhancing the exploration efficiency and path coverage ability of the testing tool. This article evaluated the proposed LinFuzz on 12 real programs in comparison with other open-source tools like AFL, AFLFast, FairFuzz, Neuzz, etc. The results show that under the same testing time budget, LinFuzz outperforms other tools in terms of vulnerability discovery quantity and code coverage ability. Compared with complex fuzz testing optimization algorithms, LinFuzz has lower memory consumption and time complexity.INDEX TERMS Coverage-guided fuzzing, LinUCB Algorithm, Seed Scheduling